cdc:nos2.source:opl.opl871:deck:fsesubs
Deck FSESUBS
Library Member Format: MODIFY
Listing Sections
- Deck FSESUBS Start
- Deck FSESUBS Part 1 (Line 1953)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.fsesubs +++|PROC FSESUBS; 00002 M00S00002.fsesubs +++| BEGIN 00003 M00S00003.fsesubs +++| 00004 M00S00004.fsesubs +++| 00005 M00S00005.fsesubs +++|# 00006 M00S00006.fsesubs +++|*** FSESUBS -- SUBROUTINES OF FULL SCREEN EDITOR. 00007 M00S00007.fsesubs +++|*
Line S00008 Modification History | |
---|---|
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00008 M01S00008.281l803 ---|* COPYRIGHT CONTROL DATA CORPORATION, 1983.
Line S00001 Modification History | |
---|---|
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00009 M01S00001.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00010 M00S00009.fsesubs +++|* 00011 M00S00010.fsesubs +++|* FSESUBS PROVIDES SUBROUTINES WHICH ARE UNIVERSAL TO THE 00012 M00S00011.fsesubs +++|* SINGLE AND MULTI-USER VERSIONS OF THE EDITOR, AND WHICH ARE 00013 M00S00012.fsesubs +++|* ALSO REGARDED AS LIKELY TO BE UNIVERSAL TO ALL OVERLAYS IF 00014 M00S00013.fsesubs +++|* THE SINGLE-USER EDITOR WERE TO BE CONVERTED INTO AN OVERLAY 00015 M00S00014.fsesubs +++|* STRUCTURE. FSESUBS SPECIFICALLY INCLUDES THE INTERFACES BY 00016 M00S00015.fsesubs +++|* WHICH THE WORKFILE MANAGER IS CALLED, AND INTERFACES FOR 00017 M00S00016.fsesubs +++|* MANAGEMENT OF THE AUDIT TRAIL AND OF INTERNAL FILE IMAGES. 00018 M00S00017.fsesubs +++|# 00019 M00S00018.fsesubs +++| 00020 M00S00019.fsesubs +++| DEF LISTCON #0#; 00021 M00S00020.fsesubs +++| 00022 M00S00021.fsesubs +++|CONTROL EJECT; # UNIVERSAL DECLARES # 00023 M00S00022.fsesubs +++| 00024 M00S00023.fsesubs +++|*IFCALL SINGLE,COMFSGL 00025 M00S00024.fsesubs +++|*IFCALL ONLY,COMFONL 00026 M00S00025.fsesubs +++|*IFCALL MULTI,COMFMLT 00027 M00S00026.fsesubs +++|*CALL COMFFSE 00028 M00S00027.fsesubs +++| 00029 M00S00028.fsesubs +++| # EXTERNAL REF'S AND DEF'S # 00030 M00S00029.fsesubs +++| 00031 M00S00030.fsesubs +++| 00032 M00S00031.fsesubs +++|CONTROL IFEQ MULTI,1; 00033 M00S00032.fsesubs +++| XREF ARRAY RENTSTK [1:MAXREENT]; # SUBROUTINE STACK # 00034 M00S00033.fsesubs +++| BEGIN 00035 M00S00034.fsesubs +++| ITEM RSTK; 00036 M00S00035.fsesubs +++| END 00037 M00S00036.fsesubs +++| XREF ITEM RSTKPTR; 00038 M00S00037.fsesubs +++|CONTROL FI; 00039 M00S00038.fsesubs +++| 00040 M00S00039.fsesubs +++|XDEF ITEM LINSIZ=BUFWIDP1; # MAX LINE SIZ IN WORDS # 00041 M00S00040.fsesubs +++| 00042 M00S00041.fsesubs +++|XDEF 00043 M00S00042.fsesubs +++| BEGIN 00044 M00S00043.fsesubs +++|*CALL COMFXSB 00045 M00S00044.fsesubs +++| END 00046 M00S00045.fsesubs +++| 00047 M00S00046.fsesubs +++|XREF 00048 M00S00047.fsesubs +++| BEGIN 00049 M00S00048.fsesubs +++|*CALL COMFXED 00050 M00S00049.fsesubs +++|*CALL COMFXSC 00051 M00S00050.fsesubs +++|*CALL COMFXTI 00052 M00S00051.fsesubs +++|*CALL COMFXFO 00053 M00S00052.fsesubs +++|*CALL COMFXVT 00054 M00S00053.fsesubs +++|*CALL COMFXWK 00055 M00S00054.fsesubs +++| PROC ZEROWD; 00056 M00S00055.fsesubs +++| PROC WRITER; 00057 M00S00056.fsesubs +++| PROC ABORT; 00058 M00S00057.fsesubs +++| PROC ENDRUN; 00059 M00S00058.fsesubs +++| PROC FASTCAI; 00060 M00S00059.fsesubs +++| PROC FASTCNI; 00061 M00S00060.fsesubs +++| FUNC LENGTH; 00062 M00S00061.fsesubs +++| PROC FASTCAO; 00063 M00S00062.fsesubs +++| PROC FASTCNO; 00064 M00S00063.fsesubs +++| PROC FASTRLC; 00065 M00S00064.fsesubs +++| FUNC FASTLNB; 00066 M00S00065.fsesubs +++| FUNC NOSWDSZ; 00067 M00S00066.fsesubs +++| PROC MOVEWD; 00068 M00S00067.fsesubs +++| FUNC LINESZ; 00069 M00S00068.fsesubs +++| FUNC MOVELN; 00070 M00S00069.fsesubs +++| CONTROL IFEQ MULTI,1; 00071 M00S00070.fsesubs +++| LABEL QQSINGLE; 00072 M00S00071.fsesubs +++| PROC VOLUNTEER; 00073 M00S00072.fsesubs +++| PROC FATALTRAP; 00074 M00S00073.fsesubs +++| PROC SMFRCL; 00075 M00S00074.fsesubs +++| PROC SMFDLY; 00076 M00S00075.fsesubs +++| CONTROL FI; 00077 M00S00076.fsesubs +++| CONTROL IFEQ SINGLE,1; 00078 M00S00077.fsesubs +++|*CALL COMFXFL 00079 M00S00078.fsesubs +++| PROC MESSAGE; 00080 M00S00079.fsesubs +++| PROC CSETA; 00081 M00S00080.fsesubs +++| PROC CSETN; 00082 M00S00081.fsesubs +++| PROC WRITEC; 00083 M00S00082.fsesubs +++| PROC READC; 00084 M00S00083.fsesubs +++| PROC EVICT; 00085 M00S00084.fsesubs +++| PROC GETJN; 00086 M00S00085.fsesubs +++| PROC RTIME; 00087 M00S00086.fsesubs +++| PROC RETERN; 00088 M00S00087.fsesubs +++| CONTROL FI; 00089 M00S00088.fsesubs +++| END # OF XREF # 00090 M00S00089.fsesubs +++| 00091 M00S00090.fsesubs +++| # COMMON DATA AREAS # 00092 M00S00091.fsesubs +++| 00093 M00S00092.fsesubs +++|*CALL COMFDS1 00094 M00S00093.fsesubs +++|*CALL COMFVD2 00095 M00S00094.fsesubs +++|*CALL COMFDS2 00096 M00S00095.fsesubs +++| 00097 M00S00096.fsesubs +++|*CALL COMFTAB 00098 M00S00097.fsesubs +++|PAGE # MINOR UTILITY ROUTINES # 00099 M00S00098.fsesubs +++| 00100 M00S00099.fsesubs +++| 00101 M00S00100.fsesubs +++|FUNC TRIMNAME(NAME) C(7); 00102 M00S00101.fsesubs +++| BEGIN 00103 M00S00102.fsesubs +++|# 00104 M00S00103.fsesubs +++|** TRIMNAME - CONVERT TRAILING BLANKS TO ZEROS. 00105 M00S00104.fsesubs +++|* 00106 M00S00105.fsesubs +++|* ENTRY (NAME) - LEFT-JUSTIFIED STRING UP TO SEVEN CHARS. 00107 M00S00106.fsesubs +++|* 00108 M00S00107.fsesubs +++|* EXIT (NAME) - CONVERTED. 00109 M00S00108.fsesubs +++|# 00110 M00S00109.fsesubs +++| ITEM NAME C(7), TMP1, NEWNAME C(7); 00111 M00S00110.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 6 DO 00112 M00S00111.fsesubs +++| BEGIN 00113 M00S00112.fsesubs +++| IF C<TMP1,1>NAME EQ " " THEN C<TMP1,1>NEWNAME=0; 00114 M00S00113.fsesubs +++| ELSE C<TMP1,1>NEWNAME=C<TMP1,1>NAME; 00115 M00S00114.fsesubs +++| END 00116 M00S00115.fsesubs +++| TRIMNAME=NEWNAME; 00117 M00S00116.fsesubs +++| END 00118 M00S00117.fsesubs +++| 00119 M00S00118.fsesubs +++| 00120 M00S00119.fsesubs +++|FUNC PADNAME(NAME) C(7); 00121 M00S00120.fsesubs +++| BEGIN 00122 M00S00121.fsesubs +++|# 00123 M00S00122.fsesubs +++|** PADNAME - CONVERT TRAILING ZEROS TO BLANKS. 00124 M00S00123.fsesubs +++|* 00125 M00S00124.fsesubs +++|* ENTRY (NAME) - LEFT-JUSTIFIED STRING UP TO SEVEN CHARS. 00126 M00S00125.fsesubs +++|* 00127 M00S00126.fsesubs +++|* EXIT (NAME) - CONVERTED. 00128 M00S00127.fsesubs +++|# 00129 M00S00128.fsesubs +++| ITEM NAME C(7), TMP1, NEWNAME C(7); 00130 M00S00129.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 6 DO 00131 M00S00130.fsesubs +++| BEGIN 00132 M00S00131.fsesubs +++| IF C<TMP1,1>NAME EQ 0 THEN C<TMP1,1>NEWNAME=" "; 00133 M00S00132.fsesubs +++| ELSE C<TMP1,1>NEWNAME=C<TMP1,1>NAME; 00134 M00S00133.fsesubs +++| END 00135 M00S00134.fsesubs +++| PADNAME=NEWNAME; 00136 M00S00135.fsesubs +++| END 00137 M00S00136.fsesubs +++| 00138 M00S00137.fsesubs +++| 00139 M00S00138.fsesubs +++|FUNC MIN(A1,A2); 00140 M00S00139.fsesubs +++| BEGIN 00141 M00S00140.fsesubs +++|# 00142 M00S00141.fsesubs +++|** MIN - COMPUTE LESSER OF TWO VALUES. 00143 M00S00142.fsesubs +++|* 00144 M00S00143.fsesubs +++|* ENTRY (A1) AND (A2) - VALUES TO CHOOSE. 00145 M00S00144.fsesubs +++|* 00146 M00S00145.fsesubs +++|* EXIT (MIN) - LESSER INTEGER VALUE. 00147 M00S00146.fsesubs +++|# 00148 M00S00147.fsesubs +++| ITEM A1,A2; 00149 M00S00148.fsesubs +++| IF A1 LQ A2 THEN MIN = A1; 00150 M00S00149.fsesubs +++| ELSE MIN = A2; 00151 M00S00150.fsesubs +++| END 00152 M00S00151.fsesubs +++| 00153 M00S00152.fsesubs +++|FUNC MAX(A1,A2); 00154 M00S00153.fsesubs +++| BEGIN 00155 M00S00154.fsesubs +++|# 00156 M00S00155.fsesubs +++|** MAX - COMPUTE GREATER OF TWO VALUES. 00157 M00S00156.fsesubs +++|* 00158 M00S00157.fsesubs +++|* ENTRY (A1) AND (A2) - VALUES TO CHOOSE. 00159 M00S00158.fsesubs +++|* 00160 M00S00159.fsesubs +++|* EXIT (MAX) - GREATER INTEGER VALUE. 00161 M00S00160.fsesubs +++|# 00162 M00S00161.fsesubs +++| ITEM A1,A2; 00163 M00S00162.fsesubs +++| IF A1 GQ A2 THEN MAX = A1; 00164 M00S00163.fsesubs +++| ELSE MAX = A2; 00165 M00S00164.fsesubs +++| END 00166 M00S00165.fsesubs +++| 00167 M00S00166.fsesubs +++| 00168 M00S00167.fsesubs +++|PROC PUSHTEMP; 00169 M00S00168.fsesubs +++| BEGIN 00170 M00S00169.fsesubs +++|# 00171 M00S00170.fsesubs +++|** PUSHTEMP - PRESERVE VALUE ON MISCELLANEOUS STACK. 00172 M00S00171.fsesubs +++|* 00173 M00S00172.fsesubs +++|* ENTRY (TEMP) - VALUE TO BE PRESERVED. 00174 M00S00173.fsesubs +++|* 00175 M00S00174.fsesubs +++|* EXIT DATA STACK IS PUSHED. 00176 M00S00175.fsesubs +++|* 00177 M00S00176.fsesubs +++|* USES DATAPTR, DATASTK. 00178 M00S00177.fsesubs +++|# 00179 M00S00178.fsesubs +++| IF DATAPTR GQ MAXDATA THEN 00180 M00S00179.fsesubs +++| BEGIN 00181 M00S00180.fsesubs +++| FATAL(" REENTRANT DATA STACK OVERFLOWED.$"); 00182 M00S00181.fsesubs +++| END 00183 M00S00182.fsesubs +++| DATAPTR=DATAPTR+1; 00184 M00S00183.fsesubs +++| DATASTK[DATAPTR]=TEMP; 00185 M00S00184.fsesubs +++| END # OF PUSHTEMP # 00186 M00S00185.fsesubs +++| 00187 M00S00186.fsesubs +++|PROC POPTEMP; 00188 M00S00187.fsesubs +++| BEGIN 00189 M00S00188.fsesubs +++|# 00190 M00S00189.fsesubs +++|** POPTEMP - RETREIVE VALUE FROM MISCELLANEOUS STACK. 00191 M00S00190.fsesubs +++|* 00192 M00S00191.fsesubs +++|* ENTRY DATA STACK ASSUMED TO HAVE DATA. 00193 M00S00192.fsesubs +++|* 00194 M00S00193.fsesubs +++|* EXIT (TEMP) - RETRIEVED VALUE. 00195 M00S00194.fsesubs +++|* 00196 M00S00195.fsesubs +++|* USES DATAPTR, DATASTK 00197 M00S00196.fsesubs +++|# 00198 M00S00197.fsesubs +++| IF DATAPTR LS 0 THEN FATAL(" REENTRANT DATA STACK UNDERFLOWED.$"); 00199 M00S00198.fsesubs +++| TEMP=DATASTK[DATAPTR]; 00200 M00S00199.fsesubs +++| DATAPTR=DATAPTR-1; 00201 M00S00200.fsesubs +++| END # OF POPTEMP # 00202 M00S00201.fsesubs +++| 00203 M00S00202.fsesubs +++| 00204 M00S00203.fsesubs +++|PROC STARTCMD; 00205 M00S00204.fsesubs +++| BEGIN 00206 M00S00205.fsesubs +++|# 00207 M00S00206.fsesubs +++|** STARTCMD - INITIALIZE SYNTAX SCANNER FOR NEW COMMANDS. 00208 M00S00207.fsesubs +++|* 00209 M00S00208.fsesubs +++|* ENTRY (CMDLINE) ALREADY FILLED IN WITH NEW STRING. 00210 M00S00209.fsesubs +++|* 00211 M00S00210.fsesubs +++|* EXIT (CMDLINE) TRIMMED. 00212 M00S00211.fsesubs +++|* SCANPOS, TOKENPOS, CMDMARKER, KEYWDTYPE INITIALIZED. 00213 M00S00212.fsesubs +++|* EXPANDAT INITIALIZED. 00214 M00S00213.fsesubs +++|# 00215 M00S00214.fsesubs +++| TRIM(CMDLIN,0); 00216 M00S00215.fsesubs +++| SCANPOS=0; 00217 M00S00216.fsesubs +++| TOKENPOS=0; 00218 M00S00217.fsesubs +++| CMDMARKER=0; 00219 M00S00218.fsesubs +++| KEYWDTYPE=1; 00220 M00S00219.fsesubs +++| EXPANDAT=-1; 00221 M00S00220.fsesubs +++| END # OF STARTCMD # 00222 M00S00221.fsesubs +++| 00223 M00S00222.fsesubs +++| 00224 M00S00223.fsesubs +++|FUNC TABFN(TABNUM); 00225 M00S00224.fsesubs +++| BEGIN 00226 M00S00225.fsesubs +++|# 00227 M00S00226.fsesubs +++|** TABFN - COMPUTE TAB COLUMN BY ORDINAL. 00228 M00S00227.fsesubs +++|* 00229 M00S00228.fsesubs +++|* ENTRY (TABNUM) INTEGER ORDINAL OF TAB STOP. 00230 M00S00229.fsesubs +++|* 00231 M00S00230.fsesubs +++|* EXIT (TABFN) COLUMN OFFSET. 00232 M00S00231.fsesubs +++|# 00233 M00S00232.fsesubs +++| ITEM TABNUM;
Line S00233 Modification History | |
---|---|
M01 (Removed by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00234 M01S00233.ns2129 ---| IF TABNUM LS 1 OR TABNUM GR 14 THEN TABFN=0; 00235 M01S00234.ns2129 ---| ELSE IF TABNUM LQ 7 THEN TABFN=B<TABNUM*8-8,8>TABS1; 00236 M01S00235.ns2129 ---| ELSE TABFN=B<TABNUM*8-64,8>TABS2;
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00236.fsesubs +++| END # OF TABFN # 00247 M00S00237.fsesubs +++| 00248 M00S00238.fsesubs +++| 00249 M00S00239.fsesubs +++|PROC COPYTABS; 00250 M00S00240.fsesubs +++| IOBEGIN(COPYTABS) 00251 M00S00241.fsesubs +++|# 00252 M00S00242.fsesubs +++|** COPYTABS - COPY/CONVERT TABS, TABVECTOR->VIRTERM. 00253 M00S00243.fsesubs +++|* 00254 M00S00244.fsesubs +++|* ENTRY TABVECTOR ALREADY SET UP. 00255 M00S00245.fsesubs +++|* 00256 M00S00246.fsesubs +++|* EXIT TERMINAL CONFIGURED, VIRTERM DITTO. 00257 M00S00247.fsesubs +++|* 00258 M00S00248.fsesubs +++|* CALLS VDTCTS, VDTSTS. 00259 M00S00249.fsesubs +++|* 00260 M00S00250.fsesubs +++|* USES LINCTR, LINNUM1. 00261 M00S00251.fsesubs +++|# 00262 M00S00252.fsesubs +++| VDTCTS; # CLEAR OLD TABS # 00263 M00S00253.fsesubs +++| VDTSTS(0); # ALWAYS #
Line S00254 Modification History | |
---|---|
M01 (Removed by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00264 M01S00254.ns2129 ---| IF TABS1 EQ 0 THEN IORET
Line S00010 Modification History | |
---|---|
M01 (Added by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00265 M01S00010.ns2129 +++| IF TABVCTWRD[1] EQ 0 THEN IORET 00266 M00S00255.fsesubs +++| VDTSTS(TABFN(1));
Line S00256 Modification History | |
---|---|
M01 (Removed by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00267 M01S00256.ns2129 ---| FOR LINCTR=2 STEP 1 UNTIL 14 DO
Line S00011 Modification History | |
---|---|
M01 (Added by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00268 M01S00011.ns2129 +++| FOR LINCTR=2 STEP 1 UNTIL TABSTOPS DO 00269 M00S00257.fsesubs +++| BEGIN 00270 M00S00258.fsesubs +++| LINNUM1=TABFN(LINCTR); 00271 M00S00259.fsesubs +++| IF LINNUM1 NQ 0 THEN 00272 M00S00260.fsesubs +++| BEGIN 00273 M00S00261.fsesubs +++| VDTSTS(LINNUM1); 00274 M00S00262.fsesubs +++| END 00275 M00S00263.fsesubs +++| ELSE IORET 00276 M00S00264.fsesubs +++| END 00277 M00S00265.fsesubs +++| 00278 M00S00266.fsesubs +++| IOEND # COPYTABS # 00279 M00S00267.fsesubs +++| 00280 M00S00268.fsesubs +++| 00281 M00S00269.fsesubs +++|PROC MAKEFET(AFET,NAME,BUFFER,LENGTH); 00282 M00S00270.fsesubs +++| BEGIN 00283 M00S00271.fsesubs +++|# 00284 M00S00272.fsesubs +++|** MAKEFET - INITIALIZE A FET. 00285 M00S00273.fsesubs +++|* 00286 M00S00274.fsesubs +++|* ENTRY AFET - FET TO BE INITIALIZED. 00287 M00S00275.fsesubs +++|* NAME - NAME OF FILE. 00288 M00S00276.fsesubs +++|* BUFFER - THE CIRCULAR BUFFER. 00289 M00S00277.fsesubs +++|* LENGTH - LENGTH OF CIRCULAR BUFFER. 00290 M00S00278.fsesubs +++|* 00291 M00S00279.fsesubs +++|* NOTE USES THEN RESTORES BASE ADDRESS FOR "FET" ARRAY. 00292 M00S00280.fsesubs +++|# 00293 M00S00281.fsesubs +++| ARRAY AFET;; 00294 M00S00282.fsesubs +++| ITEM NAME C(7); 00295 M00S00283.fsesubs +++| ARRAY BUFFER;; 00296 M00S00284.fsesubs +++| ITEM LENGTH; 00297 M00S00285.fsesubs +++| ITEM TMP,TMP2, NEWNAME C(7); 00298 M00S00286.fsesubs +++| 00299 M00S00287.fsesubs +++| ZEROWD(AFET,FETSIZ); 00300 M00S00288.fsesubs +++| TMP=LOC(FET); 00301 M00S00289.fsesubs +++| P<FET>=LOC(AFET); 00302 M00S00290.fsesubs +++| NEWNAME=TRIMNAME(NAME); 00303 M00S00291.fsesubs +++| FETNAM=NEWNAME; 00304 M00S00292.fsesubs +++| FETFIR=LOC(BUFFER); 00305 M00S00293.fsesubs +++| FETIN=FETFIR; 00306 M00S00294.fsesubs +++| FETOUT=FETFIR; 00307 M00S00295.fsesubs +++| FETLIM=FETFIR+LENGTH; 00308 M00S00296.fsesubs +++| IF TRIMNAME(NAME) NQ 0 THEN 00309 M00S00297.fsesubs +++| BEGIN 00310 M00S00298.fsesubs +++| FETCOD=1; 00311 M00S00299.fsesubs +++| FETL=2; 00312 M00S00300.fsesubs +++| END 00313 M00S00301.fsesubs +++| P<FET>=TMP; 00314 M00S00302.fsesubs +++| 00315 M00S00303.fsesubs +++| END # OF MAKEFET # 00316 M00S00304.fsesubs +++| 00317 M00S00305.fsesubs +++| 00318 M00S00306.fsesubs +++|PROC TTLFN(PARM); 00319 M00S00307.fsesubs +++| IOBEGIN(TTLFN) 00320 M00S00308.fsesubs +++|# 00321 M00S00309.fsesubs +++|** TTLFN - PRINT OUT A ZERO-TERMINATED NAME. 00322 M00S00310.fsesubs +++|* 00323 M00S00311.fsesubs +++|* ENTRY (PARM) - NAME TO BE PRINTED. 00324 M00S00312.fsesubs +++|* 00325 M00S00313.fsesubs +++|* CALLS TTST. 00326 M00S00314.fsesubs +++|# 00327 M00S00315.fsesubs +++| ITEM TMP1; 00328 M00S00316.fsesubs +++| ITEM PARM; 00329 M00S00317.fsesubs +++| TMP1=0; 00330 M00S00318.fsesubs +++| WHYLE C<TMP1,1>PARM NQ 0 AND TMP1 LQ 7 DO TMP1=TMP1+1; 00331 M00S00319.fsesubs +++| TTST(PARM,TMP1);
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2346 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00320.fsesubs +++| IOEND # OF TTLFN # 00338 M00S00321.fsesubs +++| 00339 M00S00322.fsesubs +++| 00340 M00S00323.fsesubs +++|CONTROL IFEQ SINGLE,1; 00341 M00S00324.fsesubs +++| 00342 M00S00325.fsesubs +++| PROC SETCSET(WHICH); 00343 M00S00326.fsesubs +++| BEGIN 00344 M00S00327.fsesubs +++|# 00345 M00S00328.fsesubs +++|** SETCSET - ISSUE CSET MACRO. 00346 M00S00329.fsesubs +++|* 00347 M00S00330.fsesubs +++|* ENTRY (WHICH) - INDICATES ASCII OR NORMAL. 00348 M00S00331.fsesubs +++|* 00349 M00S00332.fsesubs +++|* USES ORIGIN. 00350 M00S00333.fsesubs +++|* 00351 M00S00334.fsesubs +++|* CALLS CSETA, CSETN. 00352 M00S00335.fsesubs +++|# 00353 M00S00336.fsesubs +++| ITEM WHICH B; 00354 M00S00337.fsesubs +++| IF ORIGIN EQ TXOT THEN 00355 M00S00338.fsesubs +++| BEGIN 00356 M00S00339.fsesubs +++| IF WHICH THEN CSETA; 00357 M00S00340.fsesubs +++| ELSE CSETN; 00358 M00S00341.fsesubs +++| END 00359 M00S00342.fsesubs +++| END # OF SETCSET # 00360 M00S00343.fsesubs +++| 00361 M00S00344.fsesubs +++|CONTROL FI; 00362 M00S00345.fsesubs +++|PAGE # ABORT ROUTINES # 00363 M00S00346.fsesubs +++| 00364 M00S00347.fsesubs +++| 00365 M00S00348.fsesubs +++|PROC FATAL(STR); 00366 M00S00349.fsesubs +++| IOBEGIN(FATAL) 00367 M00S00350.fsesubs +++|# 00368 M00S00351.fsesubs +++|** FATAL - ABORT THE EDITOR WITH MESSAGE. 00369 M00S00352.fsesubs +++|* MORTAL - SIMILAR FOR PROBLEMS WITHIN TERMINAL I/O. 00370 M00S00353.fsesubs +++|* 00371 M00S00354.fsesubs +++|* FATAL IS THE PRINCIPAL ROUTINE TO ABORT AN EDIT SESSION 00372 M00S00355.fsesubs +++|* FOR EITHER AN INTERNAL INCONSISTENCY OR A USER ERROR SO 00373 M00S00356.fsesubs +++|* SEVERE THAT NO MEANINGFUL FUNCTION CAN BE SALVAGED. TO 00374 M00S00357.fsesubs +++|* PREVENT CIRCULAR (RECURSIVE) SUBROUTINE LINKAGES, THE 00375 M00S00358.fsesubs +++|* WORKIO MODULE IS RESTRICTED TO INTERFACE VIA THE TRAGIC 00376 M00S00359.fsesubs +++|* ROUTINE AND THE TERMIO MODULE IS RESTRICTED TO USE THE 00377 M00S00360.fsesubs +++|* MORTAL ENTRY POINT. 00378 M00S00361.fsesubs +++|* 00379 M00S00362.fsesubs +++|* ENTRY STR - THE ABORT MESSAGE. 00380 M00S00363.fsesubs +++|* 00381 M00S00364.fsesubs +++|* EXIT TO ABORT ROUTINE, WITH WORKFILE EVICTED. 00382 M00S00365.fsesubs +++|* 00383 M00S00366.fsesubs +++|* USES LINPTR1, P<FROM>. 00384 M00S00367.fsesubs +++|* 00385 M00S00368.fsesubs +++|* CALLS TTSTR, TTLIN, MESSAGE, TTSYNC, VDTCLO, EVICT, 00386 M00S00369.fsesubs +++|* CHECKIO, FATALTRAP. 00387 M00S00370.fsesubs +++|# 00388 M00S00371.fsesubs +++| ITEM STR C(40); 00389 M00S00372.fsesubs +++| ERRSTRING=STR; # HANDLE PARM REENTRANTLY #
Line S00373 Modification History | |
---|---|
M01 (Removed by) | v23l617 |
Seq # *Modification Id* Act ----------------------------+ 00390 M01S00373.v23l617 ---| IF SCREENMODE THEN CLEARSCREEN;
Line S00001 Modification History | |
---|---|
M01 (Added by) | v23l617 |
Seq # *Modification Id* Act ----------------------------+ 00391 M01S00001.v23l617 +++| CONTROL IFEQ SINGLE,1; 00392 M01S00002.v23l617 +++| IF SCREENMODE THEN CLEARSCREEN; 00393 M01S00003.v23l617 +++| CONTROL FI;
Line S00374 Modification History | |
---|---|
M01 (Removed by) | v23l617 |
Seq # *Modification Id* Act ----------------------------+ 00394 M01S00374.v23l617 ---| TTLIN(" INTERNAL ERROR.$");
Line S00004 Modification History | |
---|---|
M01 (Added by) | v23l617 |
Seq # *Modification Id* Act ----------------------------+ 00395 M01S00004.v23l617 +++| TTLIN(" FSE INTERNAL ERROR.$"); 00396 M00S00375.fsesubs +++| TTLIN(ERRSTRING);
Line S00376 Modification History | |
---|---|
M01 (Removed by) | v23l617 |
Seq # *Modification Id* Act ----------------------------+ 00397 M01S00376.v23l617 ---| TTLIN(" CONTACT SITE ANALYST.$"); 00398 M00S00377.fsesubs +++| CONTROL IFEQ SINGLE,1; 00399 M00S00378.fsesubs +++| GOTO FATAL2; 00400 M00S00379.fsesubs +++| CONTROL FI; 00401 M00S00380.fsesubs +++| 00402 M00S00381.fsesubs +++|ENTRY PROC MORTAL(STR); 00403 M00S00382.fsesubs +++| 00404 M00S00383.fsesubs +++| CONTROL IFEQ SINGLE,1; 00405 M00S00384.fsesubs +++| ITEM MSGBUF C(40)=0; 00406 M00S00385.fsesubs +++| ITEM TMP1; 00407 M00S00386.fsesubs +++| ERRSTRING=STR; 00408 M00S00387.fsesubs +++|FATAL2: 00409 M00S00388.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 37 DO 00410 M00S00389.fsesubs +++| BEGIN 00411 M00S00390.fsesubs +++| IF C<TMP1,1>STR NQ "$" THEN C<TMP1,1>MSGBUF=C<TMP1,1>STR; 00412 M00S00391.fsesubs +++| ELSE TMP1=38; 00413 M00S00392.fsesubs +++| END 00414 M00S00393.fsesubs +++| MESSAGE(MSGBUF,3,1); 00415 M00S00394.fsesubs +++| TTSYNC; 00416 M00S00395.fsesubs +++| VDTCLO(0); 00417 M00S00396.fsesubs +++| EVICT(FET,1); 00418 M00S00397.fsesubs +++| ABORT; 00419 M00S00398.fsesubs +++| CONTROL FI; 00420 M00S00399.fsesubs +++| CONTROL IFEQ MULTI,1; 00421 M00S00400.fsesubs +++| IF NOT ABORTED THEN 00422 M00S00401.fsesubs +++| BEGIN 00423 M00S00402.fsesubs +++| ABORTED=TRUE; 00424 M00S00403.fsesubs +++| CHECKIO; 00425 M00S00404.fsesubs +++| END 00426 M00S00405.fsesubs +++| FATALTRAP; 00427 M00S00406.fsesubs +++| CONTROL FI; 00428 M00S00407.fsesubs +++| IOEND # OF FATAL # 00429 M00S00408.fsesubs +++| 00430 M00S00409.fsesubs +++| 00431 M00S00410.fsesubs +++|PROC TRAGIC(STR); 00432 M00S00411.fsesubs +++| IOBEGIN(TRAGIC) 00433 M00S00412.fsesubs +++|# 00434 M00S00413.fsesubs +++|** TRAGIC - ABORT EDITOR DUE TO WORKFILE PROBLEM. 00435 M00S00414.fsesubs +++|* 00436 M00S00415.fsesubs +++|* TRAGIC IS USED BY WORKIO FOR SELF-ABORT SITUATIONS. BY 00437 M00S00416.fsesubs +++|* SETTING THE "ABORTED" FLAG, WE DIRECT "FATAL" TO IMMEDIATELY 00438 M00S00417.fsesubs +++|* EVICT THE WORKFILE WITHOUT FURTHER WORKIO CALLS. 00439 M00S00418.fsesubs +++|* 00440 M00S00419.fsesubs +++|* ENTRY STR - ERROR MESSAGE. 00441 M00S00420.fsesubs +++|* 00442 M00S00421.fsesubs +++|* EXIT TO FATAL, WITH "ABORTED" SET. 00443 M00S00422.fsesubs +++|# 00444 M00S00423.fsesubs +++| ITEM STR C(80); 00445 M00S00424.fsesubs +++| ABORTED=TRUE; 00446 M00S00425.fsesubs +++| FATAL(STR); 00447 M00S00426.fsesubs +++| IOEND # OF TRAGIC # 00448 M00S00427.fsesubs +++|PAGE # SUPPORT ROUTINES FOR INTERNAL CHARSET # 00449 M00S00428.fsesubs +++| 00450 M00S00429.fsesubs +++| 00451 M00S00430.fsesubs +++|PROC COPYLIN(LIN1,LIN2); 00452 M00S00431.fsesubs +++| BEGIN 00453 M00S00432.fsesubs +++|# 00454 M00S00433.fsesubs +++|** COPYLIN - COPY LINE IMAGE, INTERNAL CHARSET. 00455 M00S00434.fsesubs +++|* 00456 M00S00435.fsesubs +++|* ENTRY LIN1 IS SOURCE, LIN2 IS TARGET. 00457 M00S00436.fsesubs +++|# 00458 M00S00437.fsesubs +++| ARRAY LIN1;; ARRAY LIN2;; 00459 M00S00438.fsesubs +++| DUMB=LINESZ(LIN1); # FIX EOL BITS # 00460 M00S00439.fsesubs +++| DUMB=MOVELN(LIN1,LIN2); # ACTUAL COPY # 00461 M00S00440.fsesubs +++| END # OF COPYLIN # 00462 M00S00441.fsesubs +++| 00463 M00S00442.fsesubs +++| 00464 M00S00443.fsesubs +++|PROC EXTENDC(TEXTLIN,X); 00465 M00S00444.fsesubs +++| BEGIN 00466 M00S00445.fsesubs +++|# 00467 M00S00446.fsesubs +++|** EXTENDC - EXTEND INTERNAL LINE IMAGE TO DESIRED LENGTH. 00468 M00S00447.fsesubs +++|* 00469 M00S00448.fsesubs +++|* ENTRY TEXTLIN - TRIMMED LINE IMAGE. 00470 M00S00449.fsesubs +++|* X - LENGTH TO BE PADDED TO. 00471 M00S00450.fsesubs +++|* 00472 M00S00451.fsesubs +++|* MACROS SETCHAR. 00473 M00S00452.fsesubs +++|* 00474 M00S00453.fsesubs +++|* CALLS LENGTH. 00475 M00S00454.fsesubs +++|# 00476 M00S00455.fsesubs +++| ARRAY TEXTLIN[0:99]; ITEM TEXTLINE; 00477 M00S00456.fsesubs +++| ITEM TMP1, TMP2, X; 00478 M00S00457.fsesubs +++| IF X GQ LENGTH(TEXTLIN) THEN 00479 M00S00458.fsesubs +++| BEGIN 00480 M00S00459.fsesubs +++| TMP1=LENGTH(TEXTLIN); 00481 M00S00460.fsesubs +++| FOR TMP2=TMP1 STEP 1 UNTIL X 00482 M00S00461.fsesubs +++| DO SETCHAR(TEXTLINE,TMP2,CBLANK); 00483 M00S00462.fsesubs +++| SETCHAR(TEXTLINE,X+1,CENDLINE); 00484 M00S00463.fsesubs +++| END 00485 M00S00464.fsesubs +++| END # OF EXTENDC # 00486 M00S00465.fsesubs +++| 00487 M00S00466.fsesubs +++| 00488 M00S00467.fsesubs +++|PROC LSHIFT(TEXTLIN,X,N); 00489 M00S00468.fsesubs +++| BEGIN 00490 M00S00469.fsesubs +++|# 00491 M00S00470.fsesubs +++|** LSHIFT - SHIFT INTERNAL LINE IMAGE LEFT. 00492 M00S00471.fsesubs +++|* 00493 M00S00472.fsesubs +++|* CHARACTER POSITION "X" GOES TO "X-N", X+1 TO X+1-N, ETC. 00494 M00S00473.fsesubs +++|* 00495 M00S00474.fsesubs +++|* ENTRY TEXTLIN - INTERNAL LINE IMAGE. 00496 M00S00475.fsesubs +++|* X - FIRST SHIFTABLE POSITION. 00497 M00S00476.fsesubs +++|* N - DISTANCE OF SHIFT. 00498 M00S00477.fsesubs +++|* 00499 M00S00478.fsesubs +++|* MACROS GETCHAR, SETCHAR. 00500 M00S00479.fsesubs +++|* 00501 M00S00480.fsesubs +++|* CALLS LENGTH, EXTENDC. 00502 M00S00481.fsesubs +++|# 00503 M00S00482.fsesubs +++| ARRAY TEXTLIN[0:99]; ITEM TEXTLINE; 00504 M00S00483.fsesubs +++| ITEM X,N,NN,I,L,C; 00505 M00S00484.fsesubs +++| IF N NQ 0 THEN 00506 M00S00485.fsesubs +++| BEGIN 00507 M00S00486.fsesubs +++| EXTENDC(TEXTLIN,X-1); 00508 M00S00487.fsesubs +++| L=LENGTH(TEXTLIN); 00509 M00S00488.fsesubs +++| NN=N; 00510 M00S00489.fsesubs +++| IF X LS N THEN NN=X; 00511 M00S00490.fsesubs +++| FOR I=X STEP 1 UNTIL L DO 00512 M00S00491.fsesubs +++| BEGIN 00513 M00S00492.fsesubs +++| GETCHAR(TEXTLINE,I,C); 00514 M00S00493.fsesubs +++| SETCHAR(TEXTLINE,I-NN,C); 00515 M00S00494.fsesubs +++| END 00516 M00S00495.fsesubs +++| END 00517 M00S00496.fsesubs +++| END # OF LSHIFT # 00518 M00S00497.fsesubs +++| 00519 M00S00498.fsesubs +++| 00520 M00S00499.fsesubs +++|PROC RSHIFT(TEXTLIN,X,N); 00521 M00S00500.fsesubs +++| BEGIN 00522 M00S00501.fsesubs +++| # RSHIFT - RIGHT SHIFT LINE (MOVE X TO X+N, X+1 TO X+1+N, ETC.) # 00523 M00S00502.fsesubs +++|# 00524 M00S00503.fsesubs +++|** RSHIFT - RIGHT SHIFT OF INTERNAL LINE IMAGE. 00525 M00S00504.fsesubs +++|* 00526 M00S00505.fsesubs +++|* RSHIFT MOVES POSITION "X" TO "X+N", "X+1" TO "X+1+N", ETC. 00527 M00S00506.fsesubs +++|* 00528 M00S00507.fsesubs +++|* ENTRY SAME CONDITIONS AS LSHIFT ROUTINE. 00529 M00S00508.fsesubs +++|* 00530 M00S00509.fsesubs +++|* MACROS GETCHAR, SETCHAR. 00531 M00S00510.fsesubs +++|* 00532 M00S00511.fsesubs +++|* CALLS EXTENDC, LENGTH. 00533 M00S00512.fsesubs +++|# 00534 M00S00513.fsesubs +++| ARRAY TEXTLIN[0:99]; ITEM TEXTLINE; 00535 M00S00514.fsesubs +++| ITEM X,N,I,L,C; 00536 M00S00515.fsesubs +++| IF N NQ 0 THEN 00537 M00S00516.fsesubs +++| BEGIN 00538 M00S00517.fsesubs +++| EXTENDC(TEXTLIN,X-1); 00539 M00S00518.fsesubs +++| L=LENGTH(TEXTLIN); 00540 M00S00519.fsesubs +++| EXTENDC(TEXTLIN,X+N); 00541 M00S00520.fsesubs +++| IF L+N GR BUFCHAR THEN 00542 M00S00521.fsesubs +++| BEGIN 00543 M00S00522.fsesubs +++| L=BUFCHAR-N; 00544 M00S00523.fsesubs +++| SETCHAR(TEXTLINE,L,CENDLINE); 00545 M00S00524.fsesubs +++| END 00546 M00S00525.fsesubs +++| FOR I=L STEP -1 UNTIL X DO 00547 M00S00526.fsesubs +++| BEGIN 00548 M00S00527.fsesubs +++| GETCHAR(TEXTLINE,I,C); 00549 M00S00528.fsesubs +++| SETCHAR(TEXTLINE,I+N,C); 00550 M00S00529.fsesubs +++| END 00551 M00S00530.fsesubs +++| SETCHAR(TEXTLINE,L+N,CENDLINE); 00552 M00S00531.fsesubs +++| END 00553 M00S00532.fsesubs +++| END # OF RSHIFT # 00554 M00S00533.fsesubs +++| 00555 M00S00534.fsesubs +++| 00556 M00S00535.fsesubs +++|PROC CONVIN(TEXTLINE,CHARTYPE); 00557 M00S00536.fsesubs +++| BEGIN 00558 M00S00537.fsesubs +++|# 00559 M00S00538.fsesubs +++|** CONVIN - CONVERT INPUT LINE TO INTERNAL FORMAT. 00560 M00S00539.fsesubs +++|* 00561 M00S00540.fsesubs +++|* ENTRY TMPLIN - ALREADY CONTAINS NOS-FORMAT LINE IMAGE.
Line S00541 Modification History | |
---|---|
M01 (Removed by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00562 M01S00541.ns2582 ---|* CHARTYPE - INDICATES CONVERSION ALGORITHM, 0=6-BIT, 00563 M01S00542.ns2582 ---|* 1=6/12, 2=8/12.
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00543.fsesubs +++|* 00570 M00S00544.fsesubs +++|* EXIT TEXTLINE - CONTAINS INTERNAL FORMAT LINE IMAGE.
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2225 |
Seq # *Modification Id* Act ----------------------------+ 00571 M01S00001.ns2225 +++|* ZEROCOLIN - FORCED TRUE IF AND ONLY IF 6/12 AND 00572 M01S00002.ns2225 +++|* A 00 COLON IS ENCOUNTERED. OTHERWISE UNCHANGED. 00573 M00S00545.fsesubs +++|* 00574 M00S00546.fsesubs +++|* CALLS FASTCNI, FASTCAI, SLOWC8I. 00575 M00S00547.fsesubs +++|# 00576 M00S00548.fsesubs +++| ARRAY TEXTLINE[0:99]; ITEM TEXT; 00577 M00S00549.fsesubs +++| ITEM CHARTYPE;
Line S00003 Modification History | |
---|---|
M01 (Added by) | ns2225 |
Seq # *Modification Id* Act ----------------------------+ 00578 M01S00003.ns2225 +++| ITEM TMP1; 00579 M00S00550.fsesubs +++| SWITCH CONVINSW CINORM,CINORM,CIASC,CI812; 00580 M00S00551.fsesubs +++| 00581 M00S00552.fsesubs +++| GOTO CONVINSW[CHARTYPE]; 00582 M00S00553.fsesubs +++| 00583 M00S00554.fsesubs +++|CINORM: 00584 M00S00555.fsesubs +++| FASTCNI(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2); 00585 M00S00556.fsesubs +++| RETURN; 00586 M00S00557.fsesubs +++| 00587 M00S00558.fsesubs +++|CIASC:
Line S00559 Modification History | |
---|---|
M01 (Removed by) | ns2225 |
Seq # *Modification Id* Act ----------------------------+ 00588 M01S00559.ns2225 ---| FASTCAI(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2);
Line S00004 Modification History | |
---|---|
M01 (Added by) | ns2225 |
Seq # *Modification Id* Act ----------------------------+ 00589 M01S00004.ns2225 +++| TMP1=0; 00590 M01S00005.ns2225 +++| FASTCAI(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2,TMP1);
Line S00006 Modification History | |
---|---|
M01 (Added by) | ns2225 |
M02 (Removed by) | ns2623 |
Seq # *Modification Id* Act ----------------------------+ 00591 M02S00006.ns2623 ---| IF TMP1 NQ 0 THEN ZEROCOLIN=TRUE;
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2623 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00560.fsesubs +++| RETURN; 00598 M00S00561.fsesubs +++| 00599 M00S00562.fsesubs +++|CI812: 00600 M00S00563.fsesubs +++| SLOWC8I(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2); 00601 M00S00564.fsesubs +++| RETURN; 00602 M00S00565.fsesubs +++| 00603 M00S00566.fsesubs +++| END # OF CONVIN # 00604 M00S00567.fsesubs +++| 00605 M00S00568.fsesubs +++| 00606 M00S00569.fsesubs +++|PROC CONVOUT(TEXTLINE,CHARTYPE); 00607 M00S00570.fsesubs +++| BEGIN 00608 M00S00571.fsesubs +++|# 00609 M00S00572.fsesubs +++|** CONVOUT - CONVERT INTERNAL LINE IMAGE TO NOS FORMAT. 00610 M00S00573.fsesubs +++|* 00611 M00S00574.fsesubs +++|* ENTRY TEXTLINE - INTERNAL LINE IMAGE.
Line S00575 Modification History | |
---|---|
M01 (Removed by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00612 M01S00575.ns2582 ---|* CHARTYPE - SAME AS "CONVOUT" ROUTINE.
Line S00006 Modification History | |
---|---|
M01 (Added by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 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.
Line S00007 Modification History | |
---|---|
M01 (Added by) | ns2225 |
Seq # *Modification Id* Act ----------------------------+ 00619 M01S00007.ns2225 +++|* ZEROCOLOUT - 7404 VERSUS 00 FORMAT FOR COLONS WHEN 00620 M01S00008.ns2225 +++|* 6/12 CHARACTER SET DETECTED. 00621 M00S00576.fsesubs +++|* 00622 M00S00577.fsesubs +++|* EXIT TMPLIN - CONTAINS NOS LINE IMAGE. 00623 M00S00578.fsesubs +++|* 00624 M00S00579.fsesubs +++|* MACROS GETCHAR, SETCHAR. 00625 M00S00580.fsesubs +++|* 00626 M00S00581.fsesubs +++|* CALLS LENGTH, FASTCAO, FASTCNO, NOSWDSZ, SLOWC8O. 00627 M00S00582.fsesubs +++|# 00628 M00S00583.fsesubs +++| ARRAY TEXTLINE[0:99]; ITEM TEXT; 00629 M00S00584.fsesubs +++| ITEM CHARTYPE;
Line S00585 Modification History | |
---|---|
M01 (Removed by) | ns2225 |
Seq # *Modification Id* Act ----------------------------+ 00630 M01S00585.ns2225 ---| ITEM TMP1, TMP2;
Line S00009 Modification History | |
---|---|
M01 (Added by) | ns2225 |
Seq # *Modification Id* Act ----------------------------+ 00631 M01S00009.ns2225 +++| ITEM TMP1, TMP2, BOOL B;
Line S00586 Modification History | |
---|---|
M01 (Removed by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00632 M01S00586.ns2582 ---| SWITCH CONVOUTSW CONORM,CONORM,COASC,CO812;
Line S00012 Modification History | |
---|---|
M01 (Added by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00633 M01S00012.ns2582 +++| SWITCH CONVOUTSW CONORM,CONORM,COASC,CO812,COAINT; 00634 M00S00587.fsesubs +++| 00635 M00S00588.fsesubs +++| TMP1=LENGTH(TEXTLINE);
Line S00589 Modification History | |
---|---|
M01 (Removed by) | fsesu1 |
Seq # *Modification Id* Act ----------------------------+ 00636 M01S00589.fsesu1 ---| IF TMP1 NQ 0 THEN
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
Seq # *Modification Id* Act ----------------------------+ 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 (Removed by) | fsesu2 |
Seq # *Modification Id* Act ----------------------------+ 00639 M02S00003.fsesu2 ---| TMPLINE[0]=O"5555 0000 0000 0000 0000"; 00640 M02S00004.fsesu2 ---| RETURN;
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesu2 |
Seq # *Modification Id* Act ----------------------------+ 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;
Line S00005 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
Seq # *Modification Id* Act ----------------------------+ 00650 M01S00005.fsesu1 +++| END
Line S00006 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
M02 (Removed by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00651 M02S00006.ns2582 ---| ELSE
Line S00013 Modification History | |
---|---|
M01 (Added by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00652 M01S00013.ns2582 +++| IF CHARTYPE LS 3 THEN # IF DISPLAY OR STANDARD ASCII # 00653 M00S00590.fsesubs +++| BEGIN 00654 M00S00591.fsesubs +++| GETCHAR(TEXT,TMP1-1,TMP2);
Line S00592 Modification History | |
---|---|
M01 (Removed by) | fsesu1 |
Seq # *Modification Id* Act ----------------------------+ 00655 M01S00592.fsesu1 ---| IF TMP2 EQ CCOLON THEN # EXPLICIT COLONS NEED BLANK # 00656 M01S00593.fsesu1 ---| BEGIN
Line S00007 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
M02 (Removed by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00657 M02S00007.ns2582 ---| IF TMP2 EQ CCOLON AND CHARTYPE NQ 3 THEN
Line S00014 Modification History | |
---|---|
M01 (Added by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00658 M01S00014.ns2582 +++| IF TMP2 EQ CCOLON THEN
Line S00008 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
Seq # *Modification Id* Act ----------------------------+ 00659 M01S00008.fsesu1 +++| BEGIN # TRAILING COLONS NEED A BLANK # 00660 M00S00594.fsesubs +++| SETCHAR(TEXT,TMP1,CBLANK); 00661 M00S00595.fsesubs +++| TMP1=TMP1+1; 00662 M00S00596.fsesubs +++| SETCHAR(TEXT,TMP1,CENDLINE); 00663 M00S00597.fsesubs +++| END
Line S00009 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
M02 (Removed by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00664 M02S00009.ns2582 ---| GOTO CONVOUTSW[CHARTYPE]; 00665 M00S00598.fsesubs +++| END
Line S00015 Modification History | |
---|---|
M01 (Added by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 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 (Removed by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00672 M01S00599.fsesu3 ---|
Line S00600 Modification History | |
---|---|
M01 (Removed by) | fsesu1 |
M02 (Removed by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00673 M02S00600.fsesu3 ---| GOTO CONVOUTSW[CHARTYPE];
Line S00601 Modification History | |
---|---|
M01 (Removed by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00674 M01S00601.fsesu3 ---| 00675 M01S00602.fsesu3 ---|COASC:
Line S00603 Modification History | |
---|---|
M01 (Removed by) | ns2225 |
M02 (Removed by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00676 M02S00603.fsesu3 ---| FASTCAO(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2,TRUE);
Line S00010 Modification History | |
---|---|
M01 (Added by) | ns2225 |
M02 (Removed by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00677 M02S00010.fsesu3 ---| BOOL=NOT ZEROCOLOUT; 00678 M02S00011.fsesu3 ---| FASTCAO(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2,BOOL);
Line S00604 Modification History | |
---|---|
M01 (Removed by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00679 M01S00604.fsesu3 ---| GOTO COLAST; 00680 M01S00605.fsesu3 ---| 00681 M01S00606.fsesu3 ---|CONORM: 00682 M01S00607.fsesu3 ---| FASTCNO(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2); 00683 M01S00608.fsesu3 ---| GOTO COLAST; 00684 M01S00609.fsesu3 ---| 00685 M01S00610.fsesu3 ---|COLAST: # ASSURE NO 66-BIT TERMINATORS # 00686 M01S00611.fsesu3 ---| TMP1=NOSWDSZ(BUFWIDE2,TMPLIN);
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00612.fsesubs +++| IF TMP1 GR 1 AND TMPLINE[TMP1-1] EQ 0 00697 M00S00613.fsesubs +++| AND TMPLINE[TMP1-2] LAN O"00000000000000007700" NQ 0 00698 M00S00614.fsesubs +++| AND TMPLINE[TMP1-2] LAN O"00000000000000000077" EQ 0 00699 M00S00615.fsesubs +++| THEN TMPLINE[TMP1-2]=TMPLINE[TMP1-2] LOR O"00000000000000000055"; 00700 M00S00616.fsesubs +++| RETURN; 00701 M00S00617.fsesubs +++| 00702 M00S00618.fsesubs +++|CO812: 00703 M00S00619.fsesubs +++| SLOWC8O(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2); 00704 M00S00620.fsesubs +++| RETURN; 00705 M00S00621.fsesubs +++| 00706 M00S00622.fsesubs +++| END # OF CONVOUT # 00707 M00S00623.fsesubs +++| 00708 M00S00624.fsesubs +++| 00709 M00S00625.fsesubs +++|PROC SLOWC8I(TEXTLIN,BUFLIN,SIZE1,SIZE2); 00710 M00S00626.fsesubs +++| BEGIN 00711 M00S00627.fsesubs +++|# 00712 M00S00628.fsesubs +++|** SLOWC8I - CONVERT 8/12 INPUT LINE TO INTERNAL CHARSET. 00713 M00S00629.fsesubs +++|* 00714 M00S00630.fsesubs +++|* ENTRY BUFLIN - NOS LINE IMAGE. 00715 M00S00631.fsesubs +++|* SIZE1 - CAPACITY OF TEXTLIN IN WORDS. 00716 M00S00632.fsesubs +++|* SIZE2 - CAPACITY OF BUFLIN IN WORDS. 00717 M00S00633.fsesubs +++|* 00718 M00S00634.fsesubs +++|* EXIT TEXTLIN - INTERNAL LINE IMAGE. 00719 M00S00635.fsesubs +++|* 00720 M00S00636.fsesubs +++|* MACROS SETCHAR, MOD. 00721 M00S00637.fsesubs +++|* 00722 M00S00638.fsesubs +++|* NOTE ALGORITHM SENSITIVE TO INTERNAL FORMAT DEFINITION. 00723 M00S00639.fsesubs +++|# 00724 M00S00640.fsesubs +++| ARRAY TEXTLIN [0:99]; ITEM TEXTLINE; 00725 M00S00641.fsesubs +++| ARRAY BUFLIN [0:99]; ITEM BUFLINE; 00726 M00S00642.fsesubs +++| ITEM SIZE1, SIZE2; 00727 M00S00643.fsesubs +++| ITEM TMP1, TMP2; 00728 M00S00644.fsesubs +++| 00729 M00S00645.fsesubs +++| SETCHAR(TEXTLINE,BUFCM1,CENDLINE); 00730 M00S00646.fsesubs +++| TMP1=0; 00731 M00S00647.fsesubs +++| TMP2=CLETTERA; 00732 M00S00648.fsesubs +++| WHYLE TMP1/8 LQ SIZE1 AND TMP1/5 LQ SIZE2 AND TMP2 NQ CENDLINE DO 00733 M00S00649.fsesubs +++| BEGIN 00734 M00S00650.fsesubs +++| TMP2=B<MOD(TMP1,5)*12,12>BUFLINE[TMP1/5]; 00735 M00S00651.fsesubs +++| IF TMP2 EQ 0 THEN TMP2=CENDLINE; 00736 M00S00652.fsesubs +++| ELSE TMP2=XLTXPINT[TMP2 LAN O"177"]; 00737 M00S00653.fsesubs +++| SETCHAR(TEXTLINE,TMP1,TMP2); 00738 M00S00654.fsesubs +++| TMP1=TMP1+1; 00739 M00S00655.fsesubs +++| END 00740 M00S00656.fsesubs +++| END # OF SLOWC8I # 00741 M00S00657.fsesubs +++| 00742 M00S00658.fsesubs +++| 00743 M00S00659.fsesubs +++|PROC SLOWC8O(TEXTLIN,BUFLIN,SIZE1,SIZE2); 00744 M00S00660.fsesubs +++| BEGIN 00745 M00S00661.fsesubs +++|# 00746 M00S00662.fsesubs +++|** SLOWC8O - CONVERT INTERNAL LINE IMAGE TO 8/12 FORMAT. 00747 M00S00663.fsesubs +++|* 00748 M00S00664.fsesubs +++|* ENTRY TEXTLIN - INTERNAL LINE IMAGE. 00749 M00S00665.fsesubs +++|* SIZE1, SIZE2 - SIMILAR TO "SLOWC8I" ROUTINE. 00750 M00S00666.fsesubs +++|* 00751 M00S00667.fsesubs +++|* EXIT BUFLIN - 8/12 FORMAT LINE IMAGE. 00752 M00S00668.fsesubs +++|* 00753 M00S00669.fsesubs +++|* MACROS SETCHAR, GETCHAR. 00754 M00S00670.fsesubs +++|* 00755 M00S00671.fsesubs +++|* NOTE ALGORITHM SENSITIVE TO INTERNAL FORMAT DEFINITION. 00756 M00S00672.fsesubs +++|# 00757 M00S00673.fsesubs +++| ARRAY TEXTLIN [0:99]; ITEM TEXTLINE; 00758 M00S00674.fsesubs +++| ARRAY BUFLIN [0:99]; ITEM BUFLINE; 00759 M00S00675.fsesubs +++| ITEM SIZE1, SIZE2; 00760 M00S00676.fsesubs +++| ITEM TMP1, TMP2; 00761 M00S00677.fsesubs +++| 00762 M00S00678.fsesubs +++| SETCHAR(TEXTLINE,BUFCM1,CENDLINE); 00763 M00S00679.fsesubs +++| FOR TMP1=1 STEP 1 UNTIL SIZE2 DO BUFLINE[TMP1-1]=0; 00764 M00S00680.fsesubs +++| TMP1=0; 00765 M00S00681.fsesubs +++| TMP2=1; 00766 M00S00682.fsesubs +++| WHYLE TMP1/8 LQ SIZE1 AND TMP1/5 LQ SIZE2 AND TMP2 NQ 0 DO 00767 M00S00683.fsesubs +++| BEGIN 00768 M00S00684.fsesubs +++| GETCHAR(TEXTLINE,TMP1,TMP2); 00769 M00S00685.fsesubs +++| IF TMP2 EQ CENDLINE THEN TMP2=0; 00770 M00S00686.fsesubs +++| ELSE TMP2=XLTINTXP[TMP2] LAN O"3777"; 00771 M00S00687.fsesubs +++| B<MOD(TMP1,5)*12,12>BUFLINE[TMP1/5]=TMP2; 00772 M00S00688.fsesubs +++| TMP1=TMP1+1; 00773 M00S00689.fsesubs +++| END 00774 M00S00690.fsesubs +++| 00775 M00S00691.fsesubs +++| END # OF SLOWC8O # 00776 M00S00692.fsesubs +++| 00777 M00S00693.fsesubs +++| 00778 M00S00694.fsesubs +++|PROC GETLNUM; 00779 M00S00695.fsesubs +++| BEGIN 00780 M00S00696.fsesubs +++|# 00781 M00S00697.fsesubs +++|** GETLNUM - ANALYZE INTERNAL LINE IMAGE FOR SEQUENCE NUM. 00782 M00S00698.fsesubs +++|* 00783 M00S00699.fsesubs +++|* GETLNUM IS USED TO RECOGNIZE A LINE NUMBER ON THE CURRENT 00784 M00S00700.fsesubs +++|* LINE. WE SET LINENO TO ITS BINARY VALUE. WE ALSO SET 00785 M00S00701.fsesubs +++|* WIDTHFOUND TO THE NUMBER OF DIGITS. NOTE THAT IF 00786 M00S00702.fsesubs +++|* THERE IS NO NUMBER, WE RETURN WIDTHFOUND=0, LINENO=0. 00787 M00S00703.fsesubs +++|* 00788 M00S00704.fsesubs +++|* ENTRY (LIN) - ALREADY CONTAINS LINE IMAGE. 00789 M00S00705.fsesubs +++|* 00790 M00S00706.fsesubs +++|* EXIT LINENO, WIDTHFOUND ARE SET. 00791 M00S00707.fsesubs +++|* 00792 M00S00708.fsesubs +++|* MACROS GETCHAR. 00793 M00S00709.fsesubs +++|# 00794 M00S00710.fsesubs +++| ITEM QUIT B; 00795 M00S00711.fsesubs +++| ITEM TMP2, TMP3; 00796 M00S00712.fsesubs +++| 00797 M00S00713.fsesubs +++| LINENO=0; 00798 M00S00714.fsesubs +++| WIDTHFOUND=0; 00799 M00S00715.fsesubs +++| QUIT=FALSE; 00800 M00S00716.fsesubs +++| FOR TMP2=0 STEP 1 WHILE TMP2 LS NUMWIDTH AND NOT QUIT DO 00801 M00S00717.fsesubs +++| BEGIN 00802 M00S00718.fsesubs +++| GETCHAR(LINE,TMP2,TMP3); 00803 M00S00719.fsesubs +++| IF TMP3 GQ CDIGIT0 AND TMP3 LQ CDIGIT9 THEN 00804 M00S00720.fsesubs +++| BEGIN 00805 M00S00721.fsesubs +++| LINENO=LINENO*10 + TMP3-CDIGIT0; 00806 M00S00722.fsesubs +++| WIDTHFOUND=WIDTHFOUND+1; 00807 M00S00723.fsesubs +++| END 00808 M00S00724.fsesubs +++| ELSE QUIT=TRUE; 00809 M00S00725.fsesubs +++| END 00810 M00S00726.fsesubs +++| 00811 M00S00727.fsesubs +++| END # OF GETLNUM # 00812 M00S00728.fsesubs +++| 00813 M00S00729.fsesubs +++| 00814 M00S00730.fsesubs +++|PROC SETLNUM; 00815 M00S00731.fsesubs +++| BEGIN 00816 M00S00732.fsesubs +++|# 00817 M00S00733.fsesubs +++|** SETLNUM - FORMAT SEQUENCE NUMBER ONTO INTERNAL LINE. 00818 M00S00734.fsesubs +++|* 00819 M00S00735.fsesubs +++|* SETLNUM ADJUSTS THE WIDTH OF ANY EXISTING SEQUENCE 00820 M00S00736.fsesubs +++|* NUMBER, THEN PLACES THE NEW SEQUENCE NUMBER VALUE ON 00821 M00S00737.fsesubs +++|* THE LINE. 00822 M00S00738.fsesubs +++|* 00823 M00S00739.fsesubs +++|* ENTRY (LIN) - EXISTING INTERNAL FORMAT LINE IMAGE. 00824 M00S00740.fsesubs +++|* (LINENO) - NEW SEQUENCE VALUE. 00825 M00S00741.fsesubs +++|* 00826 M00S00742.fsesubs +++|* EXIT (LIN) - FIXED UP. 00827 M00S00743.fsesubs +++|* 00828 M00S00744.fsesubs +++|* MACROS SETCHAR. 00829 M00S00745.fsesubs +++|* 00830 M00S00746.fsesubs +++|* CALLS GETLNUM, LSHIFT, RSHIFT. 00831 M00S00747.fsesubs +++|* 00832 M00S00748.fsesubs +++|* NOTES USES LINENO THEN RESTORES IT. 00833 M00S00749.fsesubs +++|# 00834 M00S00750.fsesubs +++| ITEM TMP1,TMP2,TMP3; 00835 M00S00751.fsesubs +++| 00836 M00S00752.fsesubs +++| IF NUMBERED[CURFILE] EQ 0 THEN RETURN; 00837 M00S00753.fsesubs +++| TMP2=LINENO; 00838 M00S00754.fsesubs +++| GETLNUM; # CHECK EXISTING NUMBER DIGITS # 00839 M00S00755.fsesubs +++| LINENO=TMP2; # RESTORE # 00840 M00S00756.fsesubs +++| IF WIDTHFOUND NQ NUMWIDTH THEN 00841 M00S00757.fsesubs +++| BEGIN 00842 M00S00758.fsesubs +++| LSHIFT(LIN,WIDTHFOUND,WIDTHFOUND); 00843 M00S00759.fsesubs +++| RSHIFT(LIN,0,NUMWIDTH); 00844 M00S00760.fsesubs +++| END 00845 M00S00761.fsesubs +++| FOR TMP1=NUMWIDTH-1 STEP -1 UNTIL 0 DO 00846 M00S00762.fsesubs +++| BEGIN 00847 M00S00763.fsesubs +++| TMP3=MOD(TMP2,10)+CDIGIT0; 00848 M00S00764.fsesubs +++| SETCHAR(LINE,TMP1,TMP3); 00849 M00S00765.fsesubs +++| TMP2=TMP2/10; 00850 M00S00766.fsesubs +++| END 00851 M00S00767.fsesubs +++| IF BLANKS NQ 0 THEN 00852 M00S00768.fsesubs +++| BEGIN 00853 M00S00769.fsesubs +++| GETCHAR(LINE,NUMWIDTH,TMP1); 00854 M00S00770.fsesubs +++| IF TMP1 NQ CBLANK THEN RSHIFT(LIN,NUMWIDTH,1); 00855 M00S00771.fsesubs +++| SETCHAR(LINE,NUMWIDTH,CBLANK); 00856 M00S00772.fsesubs +++| END 00857 M00S00773.fsesubs +++| END # OF SETLNUM # 00858 M00S00774.fsesubs +++| 00859 M00S00775.fsesubs +++| 00860 M00S00776.fsesubs +++|PROC TRIMPAD; 00861 M00S00777.fsesubs +++| BEGIN 00862 M00S00778.fsesubs +++|# 00863 M00S00779.fsesubs +++|** TRIMPAD - TRIM OFF TRAILING BLANKS, PAD SEQUENCE. 00864 M00S00780.fsesubs +++|* 00865 M00S00781.fsesubs +++|* TRIMPAD TRIMS ALL TRAILING BLANKS FOR A LINE IMAGE IN 00866 M00S00782.fsesubs +++|* THE INTERNAL CHARACTER SET, AND FOR SEQUENCE-NUMBERED 00867 M00S00783.fsesubs +++|* FILES IT ALSO PADS A BLANK ON LINES CONSISTING ONLY OF 00868 M00S00784.fsesubs +++|* A SEQUENCE NUMBER. 00869 M00S00785.fsesubs +++|* 00870 M00S00786.fsesubs +++|* ENTRY (LIN) - LINE IMAGE TO BE PROCESSED. 00871 M00S00787.fsesubs +++|* NUMBERED[CURFILE] - INDICATES SEQUENCE PADDING. 00872 M00S00788.fsesubs +++|* 00873 M00S00789.fsesubs +++|* EXIT (LIN) - UPDATED. 00874 M00S00790.fsesubs +++|* 00875 M00S00791.fsesubs +++|* MACROS SETCHAR. 00876 M00S00792.fsesubs +++|* 00877 M00S00793.fsesubs +++|* CALLS TRIM, PAD, GETLNUM. 00878 M00S00794.fsesubs +++|* 00879 M00S00795.fsesubs +++|* USES WIDTHFOUND. 00880 M00S00796.fsesubs +++|* 00881 M00S00797.fsesubs +++|* NOTES USES LINENO THEN RESTORES IT. 00882 M00S00798.fsesubs +++|# 00883 M00S00799.fsesubs +++| ITEM TMP1; 00884 M00S00800.fsesubs +++| IF NUMBERED[CURFILE] NQ 0 THEN 00885 M00S00801.fsesubs +++| BEGIN 00886 M00S00802.fsesubs +++| TMP1=LINENO; 00887 M00S00803.fsesubs +++| GETLNUM; 00888 M00S00804.fsesubs +++| LINENO=TMP1; 00889 M00S00805.fsesubs +++| IF LENGTH(LIN) LS WIDTHFOUND+BLANKS THEN PAD(LIN); 00890 M00S00806.fsesubs +++| TRIM(LIN,WIDTHFOUND+BLANKS); 00891 M00S00807.fsesubs +++| END 00892 M00S00808.fsesubs +++| ELSE SETCHAR(LINE,FASTLNB(LIN),CENDLINE); 00893 M00S00809.fsesubs +++| END # OF TRIMPAD # 00894 M00S00810.fsesubs +++| 00895 M00S00811.fsesubs +++| 00896 M00S00812.fsesubs +++|PROC TRIM(ALIN,MINIMUM); 00897 M00S00813.fsesubs +++| BEGIN 00898 M00S00814.fsesubs +++|# 00899 M00S00815.fsesubs +++|** TRIM - TRIM OFF TRAILING BLANKS. 00900 M00S00816.fsesubs +++|* 00901 M00S00817.fsesubs +++|* ENTRY ALIN - LINE IMAGE TO PROCESS. 00902 M00S00818.fsesubs +++|* MINIMUM - MINIMUM LENGTH TO RESPECT. 00903 M00S00819.fsesubs +++|* 00904 M00S00820.fsesubs +++|* EXIT ALIN - UPDATED. 00905 M00S00821.fsesubs +++|* 00906 M00S00822.fsesubs +++|* MACROS SETCHAR. 00907 M00S00823.fsesubs +++|* 00908 M00S00824.fsesubs +++|* CALLS FASTLNB. 00909 M00S00825.fsesubs +++|# 00910 M00S00826.fsesubs +++| ARRAY ALIN[0:99]; ITEM ALINE; 00911 M00S00827.fsesubs +++| ITEM MINIMUM; 00912 M00S00828.fsesubs +++| SETCHAR(ALINE,MAX(MINIMUM,FASTLNB(ALIN)),CENDLINE); 00913 M00S00829.fsesubs +++| END # OF TRIM # 00914 M00S00830.fsesubs +++| 00915 M00S00831.fsesubs +++| 00916 M00S00832.fsesubs +++|PROC PAD(ALIN); 00917 M00S00833.fsesubs +++| BEGIN 00918 M00S00834.fsesubs +++|# 00919 M00S00835.fsesubs +++|** PAD - ADD TRAILING BLANKS TO INTERNAL LINE IMAGE. 00920 M00S00836.fsesubs +++|* 00921 M00S00837.fsesubs +++|* ENTRY ALIN - LINE IMAGE TO PROCESS. 00922 M00S00838.fsesubs +++|* 00923 M00S00839.fsesubs +++|* EXIT ALIN - PADDED TO MAXIMUM WIDTH. 00924 M00S00840.fsesubs +++|* 00925 M00S00841.fsesubs +++|* MACROS SETCHAR. 00926 M00S00842.fsesubs +++|* 00927 M00S00843.fsesubs +++|* CALLS LENGTH. 00928 M00S00844.fsesubs +++|# 00929 M00S00845.fsesubs +++| ARRAY ALIN [0:99]; ITEM ALINE; 00930 M00S00846.fsesubs +++| ITEM TMP1,TMP2,TMP3; 00931 M00S00847.fsesubs +++| ARRAY CHARMASKS [0:7]; ITEM MASK=[ 00932 M00S00848.fsesubs +++| O"03777777777777777777", 00933 M00S00849.fsesubs +++| O"00017777777777777777", 00934 M00S00850.fsesubs +++| O"00000077777777777777", 00935 M00S00851.fsesubs +++| O"00000000377777777777", 00936 M00S00852.fsesubs +++| O"00000000001777777777", 00937 M00S00853.fsesubs +++| O"00000000000007777777", 00938 M00S00854.fsesubs +++| O"00000000000000037777", 00939 M00S00855.fsesubs +++| O"00000000000000000177"]; 00940 M00S00856.fsesubs +++| TMP2=LENGTH(ALIN); 00941 M00S00857.fsesubs +++| TMP3=TMP2/8; 00942 M00S00858.fsesubs +++| TMP2=MASK[TMP2 LAN 7]; 00943 M00S00859.fsesubs +++| ALINE[TMP3]=(ALINE[TMP3] LAN (LNO TMP2)) LOR (ALLBLANKS LAN TMP2); 00944 M00S00860.fsesubs +++| FOR TMP1=TMP3+1 STEP 1 UNTIL BUFWID DO ALINE[TMP1]=ALLBLANKS; 00945 M00S00861.fsesubs +++| SETCHAR(ALINE,BUFCHAR,CENDLINE); 00946 M00S00862.fsesubs +++| END # OF PAD # 00947 M00S00863.fsesubs +++|PAGE # BASIC IO ROUTINES # 00948 M00S00864.fsesubs +++| 00949 M00S00865.fsesubs +++|# 00950 M00S00866.fsesubs +++|** WORKIO INTERFACE ROUTINES. 00951 M00S00867.fsesubs +++|* 00952 M00S00868.fsesubs +++|* THE WORKIO ENTRY POINTS (POS,FWD,BAK,INS,DEL,REP) ALL NEED 00953 M00S00869.fsesubs +++|* ADDITIONAL PROCESSING FOR MOST EDITOR OPERATIONS, SO THE 00954 M00S00870.fsesubs +++|* EDITOR CONTAINS SEVERAL INTERFACE ROUTINES. THOSE NAMED 00955 M00S00871.fsesubs +++|* WITH "X" APPEAR IN THE SCREEN MODULE AND SYNCHRONIZE THE 00956 M00S00872.fsesubs +++|* SCREEN. "Y" ENTRY POINTS PERFORM SECRET CHANGES WITHOUT 00957 M00S00873.fsesubs +++|* FLAGGING EITHER FILE BRACKET AS CHANGED. "Z" ENTRY POINTS 00958 M00S00874.fsesubs +++|* PERFORM POINTER VECTOR RELOCATION AND FLAG THE CURRENT FILE 00959 M00S00875.fsesubs +++|* BRACKET AS CHANGED. NOTE THAT THE "X" INTERFACES USE "Z". 00960 M00S00876.fsesubs +++|* 00961 M00S00877.fsesubs +++|* "Z" INTERFACES ALSO PERFORM AUDIT TRAIL MAINTENANCE WHEN 00962 M00S00878.fsesubs +++|* THE "UNDO" FACILITY IS ENABLED. "TMPLINE" IS USED FOR THIS. 00963 M00S00879.fsesubs +++|* 00964 M00S00880.fsesubs +++|* THUS ALL INTERFACES EXCEPT "Y" REQUIRE "CURFILE" SETUP AS 00965 M00S00881.fsesubs +++|* AN IMPLIED PARAMETER UPON ENTRY. 00966 M00S00882.fsesubs +++|* 00967 M00S00883.fsesubs +++|* LINEBUF IS A BASED ARRAY WHICH IS POINTED TO THE DESIRED 00968 M00S00884.fsesubs +++|* LINE BUFFER FOR WORKIO. REDEFINITION OF LINEBUF IS 00969 M00S00885.fsesubs +++|* RESTRICTED IN THAT IT MUST POINT TO "LIN" ANY TIME THE 00970 M00S00886.fsesubs +++|* MULTI-USER EDITOR CODE REACHES AN INTERNAL SWAP EVENT. THE 00971 M00S00887.fsesubs +++|* RESULT OF THIS RESTRICTION IS THAT LINEBUF ALMOST ALWAYS 00972 M00S00888.fsesubs +++|* IS POINTED AT "LIN", EXCEPT FOR SPECIAL SEQUENCES (AUDIT 00973 M00S00889.fsesubs +++|* TRAIL FOR UNDO) WHICH ARE KNOWN TO NOT PERMIT INTERNAL SWAP. 00974 M00S00890.fsesubs +++|* ALSO, THE POS ENTRY TO WORKIO WILL NOT COPY TEXT INTO THE 00975 M00S00891.fsesubs +++|* LINE BUFFER IF THE LINE ORDINAL IN NEWCURL IS COMPLEMENTED. 00976 M00S00892.fsesubs +++|# 00977 M00S00893.fsesubs +++| 00978 M00S00894.fsesubs +++|PROC POSZ(PARM); 00979 M00S00895.fsesubs +++| IOBEGIN(POSZ) 00980 M00S00896.fsesubs +++| ITEM PARM; 00981 M00S00897.fsesubs +++| NEWCURL=PARM; 00982 M00S00898.fsesubs +++| POS; 00983 M00S00899.fsesubs +++| IOEND # OF POSZ # 00984 M00S00900.fsesubs +++| 00985 M00S00901.fsesubs +++| 00986 M00S00902.fsesubs +++|PROC FWDZ; 00987 M00S00903.fsesubs +++| IOBEGIN(FWDZ) 00988 M00S00904.fsesubs +++| FWD; 00989 M00S00905.fsesubs +++| IOEND # OF FWDZ # 00990 M00S00906.fsesubs +++| 00991 M00S00907.fsesubs +++| 00992 M00S00908.fsesubs +++|PROC BAKZ; 00993 M00S00909.fsesubs +++| IOBEGIN(BAKZ) 00994 M00S00910.fsesubs +++| BAK; 00995 M00S00911.fsesubs +++| IOEND # OF BAKZ # 00996 M00S00912.fsesubs +++| 00997 M00S00913.fsesubs +++| 00998 M00S00914.fsesubs +++|PROC INSZ; 00999 M00S00915.fsesubs +++| IOBEGIN(INSZ) 01000 M00S00916.fsesubs +++| AUDITINS; # AUDIT INSERTION # 01001 M00S00917.fsesubs +++| CHANGED[CURFILE] = 1 LAN (LNO LOCKED[CURFILE]) ; 01002 M00S00918.fsesubs +++| INS; 01003 M00S00919.fsesubs +++| RELOCATE(+1); 01004 M00S00920.fsesubs +++| IOEND # OF INSZ # 01005 M00S00921.fsesubs +++| 01006 M00S00922.fsesubs +++| 01007 M00S00923.fsesubs +++|PROC DELZ; 01008 M00S00924.fsesubs +++| IOBEGIN(DELZ) 01009 M00S00925.fsesubs +++| AUDITDEL; # AUDIT DELETION # 01010 M00S00926.fsesubs +++| CHANGED[CURFILE] = 1 LAN (LNO LOCKED[CURFILE]) ; 01011 M00S00927.fsesubs +++| DELETEDONE=TRUE; 01012 M00S00928.fsesubs +++| RELOCATE(-1); 01013 M00S00929.fsesubs +++| DEL; 01014 M00S00930.fsesubs +++| POSZ(CURRENT); 01015 M00S00931.fsesubs +++| IOEND # OF DELZ # 01016 M00S00932.fsesubs +++| 01017 M00S00933.fsesubs +++| 01018 M00S00934.fsesubs +++|PROC REPZ; 01019 M00S00935.fsesubs +++| IOBEGIN(REPZ) 01020 M00S00936.fsesubs +++| AUDITREP; # AUDIT REPLACE # 01021 M00S00937.fsesubs +++| CHANGED[CURFILE] = 1 LAN (LNO LOCKED[CURFILE]) ; 01022 M00S00938.fsesubs +++| REP; 01023 M00S00939.fsesubs +++| IOEND # OF REPZ # 01024 M00S00940.fsesubs +++| 01025 M00S00941.fsesubs +++| 01026 M00S00942.fsesubs +++|PROC INSY; 01027 M00S00943.fsesubs +++| IOBEGIN(INSY) 01028 M00S00944.fsesubs +++| INS; 01029 M00S00945.fsesubs +++| RELOCATE(+1); 01030 M00S00946.fsesubs +++| IOEND # OF INSY # 01031 M00S00947.fsesubs +++| 01032 M00S00948.fsesubs +++| 01033 M00S00949.fsesubs +++|PROC DELY; 01034 M00S00950.fsesubs +++| IOBEGIN(DELY) 01035 M00S00951.fsesubs +++| DELETEDONE=TRUE; 01036 M00S00952.fsesubs +++| RELOCATE(-1); 01037 M00S00953.fsesubs +++| DEL; 01038 M00S00954.fsesubs +++| POSZ(CURRENT); 01039 M00S00955.fsesubs +++| IOEND # OF DELY # 01040 M00S00956.fsesubs +++| 01041 M00S00957.fsesubs +++| 01042 M00S00958.fsesubs +++|PROC REPY; 01043 M00S00959.fsesubs +++| IOBEGIN(REPY) 01044 M00S00960.fsesubs +++| REP; 01045 M00S00961.fsesubs +++| IOEND # OF REPY # 01046 M00S00962.fsesubs +++| 01047 M00S00963.fsesubs +++| 01048 M00S00964.fsesubs +++|PAGE # BASIC ROUTINES FOR POSITION STACK # 01049 M00S00965.fsesubs +++| 01050 M00S00966.fsesubs +++| 01051 M00S00967.fsesubs +++|PROC PUSH; 01052 M00S00968.fsesubs +++| BEGIN 01053 M00S00969.fsesubs +++|# 01054 M00S00970.fsesubs +++|** PUSH - PUSH CURRENT LINE/FILE ONTO STACK. 01055 M00S00971.fsesubs +++|* 01056 M00S00972.fsesubs +++|* ENTRY CURRENT - LINE POSITION TO SAVE. 01057 M00S00973.fsesubs +++|* CURFILE - FILE ASSOCIATION TO SAVE. 01058 M00S00974.fsesubs +++|* 01059 M00S00975.fsesubs +++|* EXIT STACKPTR, REGLINE, STKFILE - UPDATED. 01060 M00S00976.fsesubs +++|# 01061 M00S00977.fsesubs +++| IF STACKPTR GQ MAXSTACK THEN 01062 M00S00978.fsesubs +++| BEGIN 01063 M00S00979.fsesubs +++| FATAL(" FILE POSITION STACK OVERFLOWED.$"); 01064 M00S00980.fsesubs +++| END 01065 M00S00981.fsesubs +++| STACKPTR=STACKPTR+1; 01066 M00S00982.fsesubs +++| REGLINE[STACKPTR]=CURRENT; 01067 M00S00983.fsesubs +++| STKFILE[STACKPTR]=CURFILE; 01068 M00S00984.fsesubs +++| END # OF PUSH # 01069 M00S00985.fsesubs +++| 01070 M00S00986.fsesubs +++| 01071 M00S00987.fsesubs +++|PROC POP; 01072 M00S00988.fsesubs +++| IOBEGIN(POP) 01073 M00S00989.fsesubs +++|# 01074 M00S00990.fsesubs +++|** POP - POP LINE/FILE POSITION FROM STACK. 01075 M00S00991.fsesubs +++|* 01076 M00S00992.fsesubs +++|* ENTRY REGLINE, STACKPTR, STKFILE - CONTAIN SAVED POSITION. 01077 M00S00993.fsesubs +++|* 01078 M00S00994.fsesubs +++|* EXIT LIN, CURRENT, CURFILE - RESTORED POSITION/TEXT. 01079 M00S00995.fsesubs +++|* STACKPTR - UPDATED. 01080 M00S00996.fsesubs +++|# 01081 M00S00997.fsesubs +++| IF STACKPTR LS 0 THEN 01082 M00S00998.fsesubs +++| BEGIN 01083 M00S00999.fsesubs +++| FATAL(" FILE POSITION STACK UNDERFLOWED (1).$"); 01084 M00S01000.fsesubs +++| END 01085 M00S01001.fsesubs +++| POSZ(REGLINE[STACKPTR]); 01086 M00S01002.fsesubs +++| CURFILE=STKFILE[STACKPTR]; 01087 M00S01003.fsesubs +++| STACKPTR=STACKPTR-1; 01088 M00S01004.fsesubs +++| IOEND # OF POP # 01089 M00S01005.fsesubs +++| 01090 M00S01006.fsesubs +++| 01091 M00S01007.fsesubs +++|PROC RELOCATE(PARM); 01092 M00S01008.fsesubs +++| BEGIN 01093 M00S01009.fsesubs +++| ITEM PARM; 01094 M00S01010.fsesubs +++|# 01095 M00S01011.fsesubs +++|** RELOCATE - INTERFACE TO UPDATE VECTOR OF RELOCATABLES. 01096 M00S01012.fsesubs +++|* 01097 M00S01013.fsesubs +++|* ENTRY PARM - RELOCATION FACTOR. 01098 M00S01014.fsesubs +++|* CURRENT - RELOCATION THRESHHOLD. 01099 M00S01015.fsesubs +++|* 01100 M00S01016.fsesubs +++|* EXIT REGSTACK - UPDATED. 01101 M00S01017.fsesubs +++|* 01102 M00S01018.fsesubs +++|* CALLS FASTRLC. 01103 M00S01019.fsesubs +++|# 01104 M00S01020.fsesubs +++| FASTRLC(REGSTACK,MAXREG+1,CURRENT,PARM); 01105 M00S01021.fsesubs +++| END # OF RELOCATE # 01106 M00S01022.fsesubs +++| 01107 M00S01023.fsesubs +++| 01108 M00S01024.fsesubs +++|PAGE # AUDIT TRAIL ROUTINES # 01109 M00S01025.fsesubs +++| 01110 M00S01026.fsesubs +++| 01111 M00S01027.fsesubs +++|# 01112 M00S01028.fsesubs +++|** AUDIT TRAIL FACILITY. 01113 M00S01029.fsesubs +++|* 01114 M00S01030.fsesubs +++|* AUDIT TRAIL ROUTINES PRESERVE THE CURRENT POSITION AND THE 01115 M00S01031.fsesubs +++|* "LIN" BUFFER. "TMPLIN" IS USED WIDELY. 01116 M00S01032.fsesubs +++|* 01117 M00S01033.fsesubs +++|* FOR AN INSERTION, THE AUDIT RECORD IS A SINGLE DESCRIPTOR 01118 M00S01034.fsesubs +++|* LINE WITH "I" TYPE AND THE FLOAT POSITION. 01119 M00S01035.fsesubs +++|* 01120 M00S01036.fsesubs +++|* FOR A DELETION, WE WRITE THE OLD VERSION OF THE LINE THEN A 01121 M00S01037.fsesubs +++|* DESCRIPTOR WITH "D" TYPE, FILE ID, AND FILE POSITION. 01122 M00S01038.fsesubs +++|* 01123 M00S01039.fsesubs +++|* FOR A REPLACEMENT, WE WRITE THE OLD VERSION OF THE LINE AND 01124 M00S01040.fsesubs +++|* AN "R" DESCRIPTOR, FILE ID, AND FILE POSITION. 01125 M00S01041.fsesubs +++|* 01126 M00S01042.fsesubs +++|* TO CHECK POINT A MAJOR STOPPING POINT, WE WRITE A "C" 01127 M00S01043.fsesubs +++|* DESCRIPTOR. THIS INCLUDES FILE ID'S FOR BOTH OPEN 01128 M00S01044.fsesubs +++|* BRACKETS, AND SPLIT SCREEN DIMENSIONS. 01129 M00S01045.fsesubs +++|* 01130 M00S01046.fsesubs +++|* TO TERMINATE A SERIES OF MAJOR STOPPING POINTS, WE WRITE 01131 M00S01047.fsesubs +++|* A "E" DESCRIPTOR. THIS HAS NO PARAMETERS ON IT. 01132 M00S01048.fsesubs +++|* 01133 M00S01049.fsesubs +++|* THIS AUDIT TRAIL FORMAT IS VIABLE ONLY WHEN SCANNED IN 01134 M00S01050.fsesubs +++|* REVERSE ORDER, AND WHEN IT IS ASSURED TO REPRESENT ALL 01135 M00S01051.fsesubs +++|* CHANGES. THIS IMPLIES THAT THE "AUDITOFF" FLAG CAN BE SET 01136 M00S01052.fsesubs +++|* TO DISABLE THE FACILITY, BUT IN ORDER TO CLEAR THE FLAG AND 01137 M00S01053.fsesubs +++|* RE-ENABLE THE FACILITY, IT IS MANDATORY TO ISSUE AN "END" 01138 M00S01054.fsesubs +++|* DESCRIPTOR AS DESCRIBED IN THE PREVIOUS PARAGRAPH. THE 01139 M00S01055.fsesubs +++|* UNDO INTERPRETER MUST NOT GO BEYOND THIS POINT. 01140 M00S01056.fsesubs +++|* 01141 M00S01057.fsesubs +++|* NOTE THAT ENTRY POINTS AUDITEVENT AND AUDITNUM AND AUDITTEXT 01142 M00S01058.fsesubs +++|* ARE USED ONLY BY AUDIT ROUTINES. ENTRY POINTS AUDITINS, 01143 M00S01059.fsesubs +++|* AUDITDEL, AND AUDITREP ARE INTENDED TO BE USED ONLY BY INSZ, 01144 M00S01060.fsesubs +++|* DELZ, AND REPZ. AUDITCHECK AND AUDITSYNCH ARE THE ENTRY 01145 M00S01061.fsesubs +++|* POINTS SUITABLE FOR GENERAL USAGE. AUDITTRAIL IS USED ONLY 01146 M00S01062.fsesubs +++|* BY AUDIT ROUTINES. AUDITTRAIL AND AUDITSYNCH ARE THE ONLY 01147 M00S01063.fsesubs +++|* ROUTINES TO ACTUALLY MANIPULATE THE AUDIT BUFFERING AREA. 01148 M00S01064.fsesubs +++|* 01149 M00S01065.fsesubs +++|* ROUTINES WHICH CALL AUDITTRAIL MUST SET UP THE BASE 01150 M00S01066.fsesubs +++|* ADDRESS FOR LINEBUF, AND RESTORE IT. SUCH ROUTINES 01151 M00S01067.fsesubs +++|* CURRENTLY RESTORE THAT BASE ADDRESS BY ASSUMING THE 01152 M00S01068.fsesubs +++|* CORRECT ADDRESS IS "LIN" RATHER THAN BY ACTUALLY 01153 M00S01069.fsesubs +++|* SAVING AND RESTORING. THUS, WE IMPOSE A GENERAL 01154 M00S01070.fsesubs +++|* RESTRICTION THAT ANY EDITOR CODE WHICH CAUSES AUDITABLE 01155 M00S01071.fsesubs +++|* WORKFILE CHANGES MUST USE "LIN" AS THE ADDRESS OF LINEBUF. 01156 M00S01072.fsesubs +++|* 01157 M00S01073.fsesubs +++|* THE AUDIT TRAIL IS STAGED THRU A DEDICATED MEMORY BUFFER. 01158 M00S01074.fsesubs +++|* AUDITSYNCH PURGES THIS BUFFER INTO THE AUDIT BRACKET OF 01159 M00S01075.fsesubs +++|* THE WORKFILE, SO ANY ROUTINE THAT NEEDS TO ACCESS THE 01160 M00S01076.fsesubs +++|* AUDIT TRAIL (I.E, THE UNDO FACILITY) MUST CALL AUDITSYNCH. 01161 M00S01077.fsesubs +++|* THE STAGING AREA PROVIDES PERFORMANCE OPTIMIZATION BY 01162 M00S01078.fsesubs +++|* DEFERRING AND BATCHING WORKFILE ACCESSES. 01163 M00S01079.fsesubs +++|* 01164 M00S01080.fsesubs +++|* ALL AUDIT ROUTINES, WHICH ARE ALLOWED TO BE CALLED FROM 01165 M00S01081.fsesubs +++|* OUTSIDE OF OTHER AUDIT ROUTINES, INSPECT THE AUDITOFF 01166 M00S01082.fsesubs +++|* FLAG TO SEE IF THE FACILITY IS DISABLED. ROUTINES WHICH 01167 M00S01083.fsesubs +++|* ARE LOCAL TO THE AUDIT FACILITY DO NOT CHECK THIS FLAG, 01168 M00S01084.fsesubs +++|* BOTH FOR EFFICIENCY AND TO ASSURE THAT STAGED DATA CAN 01169 M00S01085.fsesubs +++|* BE HANDLED RIGOROUSLY. 01170 M00S01086.fsesubs +++|# 01171 M00S01087.fsesubs +++| 01172 M00S01088.fsesubs +++| 01173 M00S01089.fsesubs +++|PROC AUDITINS; 01174 M00S01090.fsesubs +++| IOBEGIN(AUDITINS) 01175 M00S01091.fsesubs +++|# 01176 M00S01092.fsesubs +++|** AUDITINS - AUDIT INTERFACE FOR INSZ. 01177 M00S01093.fsesubs +++|* 01178 M00S01094.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01179 M00S01095.fsesubs +++|# 01180 M00S01096.fsesubs +++| IF AUDITOFF THEN IORET 01181 M00S01097.fsesubs +++| AUDITEVENT(CLETTERI); 01182 M00S01098.fsesubs +++| IOEND # OF AUDITINS # 01183 M00S01099.fsesubs +++| 01184 M00S01100.fsesubs +++| 01185 M00S01101.fsesubs +++|PROC AUDITDEL; 01186 M00S01102.fsesubs +++| IOBEGIN(AUDITDEL) 01187 M00S01103.fsesubs +++|# 01188 M00S01104.fsesubs +++|** AUDITDEL - AUDIT INTERFACE FOR DELZ. 01189 M00S01105.fsesubs +++|* 01190 M00S01106.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01191 M00S01107.fsesubs +++|# 01192 M00S01108.fsesubs +++| IF AUDITOFF THEN IORET 01193 M00S01109.fsesubs +++| AUDITTEXT; 01194 M00S01110.fsesubs +++| AUDITEVENT(CLETTERD); 01195 M00S01111.fsesubs +++| IOEND # OF AUDITDEL # 01196 M00S01112.fsesubs +++| 01197 M00S01113.fsesubs +++| 01198 M00S01114.fsesubs +++|PROC AUDITREP; 01199 M00S01115.fsesubs +++| IOBEGIN(AUDITREP) 01200 M00S01116.fsesubs +++|# 01201 M00S01117.fsesubs +++|** AUDITREP - AUDIT INTERFACE FOR REPZ. 01202 M00S01118.fsesubs +++|* 01203 M00S01119.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01204 M00S01120.fsesubs +++|# 01205 M00S01121.fsesubs +++| IF AUDITOFF THEN IORET 01206 M00S01122.fsesubs +++| AUDITTEXT; 01207 M00S01123.fsesubs +++| AUDITEVENT(CLETTERR); 01208 M00S01124.fsesubs +++| IOEND # OF AUDITREP # 01209 M00S01125.fsesubs +++| 01210 M00S01126.fsesubs +++| 01211 M00S01127.fsesubs +++|PROC AUDITNUM(POS,NUM); 01212 M00S01128.fsesubs +++| BEGIN 01213 M00S01129.fsesubs +++|# 01214 M00S01130.fsesubs +++|** AUDITNUM - FORMAT NUMERIC VALUE INTO AUDIT DESCRIPTOR. 01215 M00S01131.fsesubs +++|* 01216 M00S01132.fsesubs +++|* ENTRY NUM, POS - VALUE AND CHARACTER POSITION. 01217 M00S01133.fsesubs +++|* 01218 M00S01134.fsesubs +++|* EXIT TMPLIN - CONTAINS FORMATTED VALUE. 01219 M00S01135.fsesubs +++|* 01220 M00S01136.fsesubs +++|* MACROS SETCHAR. 01221 M00S01137.fsesubs +++|* 01222 M00S01138.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01223 M00S01139.fsesubs +++|# 01224 M00S01140.fsesubs +++| ITEM POS, NUM, TMP2, TMP3, TMP4; 01225 M00S01141.fsesubs +++| TMP2=NUM; 01226 M00S01142.fsesubs +++| FOR TMP3=9 STEP -1 UNTIL 0 DO 01227 M00S01143.fsesubs +++| BEGIN 01228 M00S01144.fsesubs +++| TMP4=CDIGIT0+MOD(TMP2,10); 01229 M00S01145.fsesubs +++| TMP2=TMP2/10; 01230 M00S01146.fsesubs +++| SETCHAR(TMPLINE,POS+TMP3,TMP4); 01231 M00S01147.fsesubs +++| END 01232 M00S01148.fsesubs +++| SETCHAR(TMPLINE,POS+10,CBLANK); 01233 M00S01149.fsesubs +++| END # OF AUDITNUM # 01234 M00S01150.fsesubs +++| 01235 M00S01151.fsesubs +++| 01236 M00S01152.fsesubs +++|PROC AUDITEVENT(PARM); 01237 M00S01153.fsesubs +++| IOBEGIN(AUDITEVENT) 01238 M00S01154.fsesubs +++|# 01239 M00S01155.fsesubs +++|** AUDITEVENT - FORMAT AND TRANSMIT DESCRIPTOR. 01240 M00S01156.fsesubs +++|* 01241 M00S01157.fsesubs +++|* ENTRY PARM - TYPE OF DESCRIPTOR. 01242 M00S01158.fsesubs +++|* 01243 M00S01159.fsesubs +++|* EXIT DESCRIPTOR TRANSMITTED TO AUDIT TRAIL. 01244 M00S01160.fsesubs +++|* 01245 M00S01161.fsesubs +++|* MACROS SETCHAR. 01246 M00S01162.fsesubs +++|* 01247 M00S01163.fsesubs +++|* CALLS AUDITNUM, AUDITTRAIL. 01248 M00S01164.fsesubs +++|* 01249 M00S01165.fsesubs +++|* USES TMPLIN, P<LINEBUF>. 01250 M00S01166.fsesubs +++|* 01251 M00S01167.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01252 M00S01168.fsesubs +++|# 01253 M00S01169.fsesubs +++| ITEM PARM; 01254 M00S01170.fsesubs +++| 01255 M00S01171.fsesubs +++| SETCHAR(TMPLINE,0,PARM); 01256 M00S01172.fsesubs +++| # END OF PARAMETER USAGE # 01257 M00S01173.fsesubs +++| AUDITNUM(1,CURFILE); 01258 M00S01174.fsesubs +++| AUDITNUM(12,FDLF(CURFILE)); 01259 M00S01175.fsesubs +++| AUDITNUM(23,CURRENT-TOPF(CURFILE)); 01260 M00S01176.fsesubs +++| SETCHAR(TMPLINE,34,CENDLINE); 01261 M00S01177.fsesubs +++| P<LINEBUF>=LOC(TMPLIN); 01262 M00S01178.fsesubs +++| AUDITTRAIL; 01263 M00S01179.fsesubs +++| P<LINEBUF>=LOC(LIN); 01264 M00S01180.fsesubs +++| IOEND # OF AUDITEVENT # 01265 M00S01181.fsesubs +++| 01266 M00S01182.fsesubs +++| 01267 M00S01183.fsesubs +++|PROC AUDITTEXT; 01268 M00S01184.fsesubs +++| IOBEGIN(AUDITTEXT) 01269 M00S01185.fsesubs +++|# 01270 M00S01186.fsesubs +++|** AUDITTEXT - TRANSMIT TEXT LINE TO AUDIT TRAIL. 01271 M00S01187.fsesubs +++|* 01272 M00S01188.fsesubs +++|* ENTRY CURRENT - POINTS TO OLD LINE IMAGE IN WORKFILE. 01273 M00S01189.fsesubs +++|* 01274 M00S01190.fsesubs +++|* CALLS POSZ, AUDITTRAIL. 01275 M00S01191.fsesubs +++|* 01276 M00S01192.fsesubs +++|* USES TMPLIN, P<LINEBUF>. 01277 M00S01193.fsesubs +++|* 01278 M00S01194.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01279 M00S01195.fsesubs +++|# 01280 M00S01196.fsesubs +++| P<LINEBUF>=LOC(TMPLIN); 01281 M00S01197.fsesubs +++| POSZ(CURRENT); # READ OLD VERSION # 01282 M00S01198.fsesubs +++| AUDITTRAIL; 01283 M00S01199.fsesubs +++| P<LINEBUF>=LOC(LIN); 01284 M00S01200.fsesubs +++| IOEND # OF AUDITTEXT # 01285 M00S01201.fsesubs +++| 01286 M00S01202.fsesubs +++| 01287 M00S01203.fsesubs +++|PROC AUDITCHECK; 01288 M00S01204.fsesubs +++| IOBEGIN(AUDITCHECK) 01289 M00S01205.fsesubs +++|# 01290 M00S01206.fsesubs +++|** AUDITCHECK - ISSUE CHECKPOINT TO AUDIT TRAIL. 01291 M00S01207.fsesubs +++|* 01292 M00S01208.fsesubs +++|* ENTRY AUDITUSED - INDICATES IF ANYTHING AUDITED SINCE 01293 M00S01209.fsesubs +++|* LAST CHECKPOINT. 01294 M00S01210.fsesubs +++|* 01295 M00S01211.fsesubs +++|* EXIT AUDITUSED - CLEAR TO SHOW CHECKPOINT IS MOST 01296 M00S01212.fsesubs +++|* RECENT AUDIT ENTRY. 01297 M00S01213.fsesubs +++|* 01298 M00S01214.fsesubs +++|* MACROS SETCHAR. 01299 M00S01215.fsesubs +++|* 01300 M00S01216.fsesubs +++|* CALLS AUDITNUM, AUDITTRAIL. 01301 M00S01217.fsesubs +++|* 01302 M00S01218.fsesubs +++|* USES TMPLIN, P<LINEBUF>. 01303 M00S01219.fsesubs +++|* 01304 M00S01220.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01305 M00S01221.fsesubs +++|# 01306 M00S01222.fsesubs +++| IF AUDITOFF THEN IORET 01307 M00S01223.fsesubs +++| IF NOT AUDITUSED THEN IORET 01308 M00S01224.fsesubs +++| SETCHAR(TMPLINE,0,CLETTERC); 01309 M00S01225.fsesubs +++| AUDITNUM(1,FDLF(1)); 01310 M00S01226.fsesubs +++| AUDITNUM(12,FDLF(2)); 01311 M00S01227.fsesubs +++| AUDITNUM(23,NUMROWS[2]); 01312 M00S01228.fsesubs +++| SETCHAR(TMPLINE,34,CENDLINE); 01313 M00S01229.fsesubs +++| P<LINEBUF>=LOC(TMPLIN); 01314 M00S01230.fsesubs +++| AUDITTRAIL; 01315 M00S01231.fsesubs +++| P<LINEBUF>=LOC(LIN); 01316 M00S01232.fsesubs +++| AUDITUSED=FALSE; 01317 M00S01233.fsesubs +++| IOEND # OF AUDITCHECK # 01318 M00S01234.fsesubs +++| 01319 M00S01235.fsesubs +++| 01320 M00S01236.fsesubs +++|PROC AUDITEND; 01321 M00S01237.fsesubs +++| IOBEGIN(AUDITEND) 01322 M00S01238.fsesubs +++|# 01323 M00S01239.fsesubs +++|** AUDITEND - ISSUE TERMINATOR TO AUDIT TRAIL. 01324 M00S01240.fsesubs +++|* 01325 M00S01241.fsesubs +++|* EXIT AUDITUSED - CLEAR TO SHOW CHECKPOINT IS MOST 01326 M00S01242.fsesubs +++|* RECENT AUDIT ENTRY. 01327 M00S01243.fsesubs +++|* 01328 M00S01244.fsesubs +++|* MACROS SETCHAR. 01329 M00S01245.fsesubs +++|* 01330 M00S01246.fsesubs +++|* CALLS AUDITTRAIL. 01331 M00S01247.fsesubs +++|* 01332 M00S01248.fsesubs +++|* USES TMPLIN, P<LINEBUF>. 01333 M00S01249.fsesubs +++|* 01334 M00S01250.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01335 M00S01251.fsesubs +++|# 01336 M00S01252.fsesubs +++| IF AUDITOFF THEN IORET 01337 M00S01253.fsesubs +++| SETCHAR(TMPLINE,0,CLETTERE); 01338 M00S01254.fsesubs +++| SETCHAR(TMPLINE,1,CENDLINE); 01339 M00S01255.fsesubs +++| P<LINEBUF>=LOC(TMPLIN); 01340 M00S01256.fsesubs +++| AUDITTRAIL; 01341 M00S01257.fsesubs +++| P<LINEBUF>=LOC(LIN); 01342 M00S01258.fsesubs +++| AUDITUSED=FALSE; 01343 M00S01259.fsesubs +++| IOEND # OF AUDITEND # 01344 M00S01260.fsesubs +++| 01345 M00S01261.fsesubs +++| 01346 M00S01262.fsesubs +++|PROC AUDITTRAIL; 01347 M00S01263.fsesubs +++| IOBEGIN(AUDITTRAIL); 01348 M00S01264.fsesubs +++|# 01349 M00S01265.fsesubs +++|** AUDITTRAIL - TRANSMIT LINE IMAGE TO AUDIT TRAIL. 01350 M00S01266.fsesubs +++|* 01351 M00S01267.fsesubs +++|* ENTRY P<LINEBUF> - POINTS TO INTERNAL LINE IMAGE. 01352 M00S01268.fsesubs +++|* 01353 M00S01269.fsesubs +++|* EXIT LINE IMAGE IS STAGED IN BUFFER. 01354 M00S01270.fsesubs +++|* AUDITUSED - SET TO SHOW SOMETHING AUDITED SINCE 01355 M00S01271.fsesubs +++|* MOST RECENT CHECKPOINT. 01356 M00S01272.fsesubs +++|* AUDITNEXT - UPDATED. 01357 M00S01273.fsesubs +++|* 01358 M00S01274.fsesubs +++|* CALLS LINESZ, MOVELN, AUDITSYNCH. 01359 M00S01275.fsesubs +++|* 01360 M00S01276.fsesubs +++|* USES P<TOO>. 01361 M00S01277.fsesubs +++|* 01362 M00S01278.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01363 M00S01279.fsesubs +++|# 01364 M00S01280.fsesubs +++| ITEM TMP1; # USE INSTANTLY # 01365 M00S01281.fsesubs +++| TMP1=LINESZ(LINEBUF); # MEASURE TEXT, FIX EOL BITS # 01366 M00S01282.fsesubs +++| IF TMP1 GQ AUDITSIZE-AUDITNEXT THEN AUDITSYNCH; # ASSURE ROOM # 01367 M00S01283.fsesubs +++| P<TOO>=LOC(AUDITWORD[AUDITNEXT]); 01368 M00S01284.fsesubs +++| AUDITNEXT=AUDITNEXT+MOVELN(LINEBUF,TOO); # QUEUE THIS RECORD # 01369 M00S01285.fsesubs +++| AUDITUSED=TRUE; 01370 M00S01286.fsesubs +++| IOEND # OF AUDITTRAIL # 01371 M00S01287.fsesubs +++| 01372 M00S01288.fsesubs +++| 01373 M00S01289.fsesubs +++|PROC AUDITSYNCH; 01374 M00S01290.fsesubs +++| IOBEGIN(AUDITSYNCH); 01375 M00S01291.fsesubs +++|# 01376 M00S01292.fsesubs +++|** AUDITSYNCH - FLUSH STAGING BUFFER INTO WORKFILE. 01377 M00S01293.fsesubs +++|* 01378 M00S01294.fsesubs +++|* EXIT CURA(AUDITCTL), AUDITNEXT - UPDATED. 01379 M00S01295.fsesubs +++|* 01380 M00S01296.fsesubs +++|* USES P<LINEBUF> WITH RESTORATION. 01381 M00S01297.fsesubs +++|* "TEMP" WITH RESTORATION. 01382 M00S01298.fsesubs +++|* 01383 M00S01299.fsesubs +++|* CALLS PUSHTEMP, POPTEMP, PUSH, POP, POSZ, INS, 01384 M00S01300.fsesubs +++|* RELOCATE. 01385 M00S01301.fsesubs +++|* 01386 M00S01302.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01387 M00S01303.fsesubs +++|* REQUIRES WORKIO CAPABILITY TO POSITION FILE WITH 01388 M00S01304.fsesubs +++|* NO COPY OF LINE IMAGE. 01389 M00S01305.fsesubs +++|# 01390 M00S01306.fsesubs +++| PUSHTEMP; 01391 M00S01307.fsesubs +++| TEMP=LOC(LINEBUF); # SAVE # 01392 M00S01308.fsesubs +++| PUSHTEMP; 01393 M00S01309.fsesubs +++| PUSH; 01394 M00S01310.fsesubs +++| P<LINEBUF>=0; 01395 M00S01311.fsesubs +++| POSZ(CURA(AUDITCTL)); # INVISIBLY # 01396 M00S01312.fsesubs +++| TEMP=0; 01397 M00S01313.fsesubs +++| WHYLE TEMP LS AUDITNEXT DO 01398 M00S01314.fsesubs +++| BEGIN 01399 M00S01315.fsesubs +++| P<LINEBUF>=LOC(AUDITWORD[TEMP]); # TAKE DIRECTLY FROM QUEUE # 01400 M00S01316.fsesubs +++| TEMP=TEMP+LINESZ(LINEBUF); # MEASURE, FIX EOL BITS # 01401 M00S01317.fsesubs +++| INS; 01402 M00S01318.fsesubs +++| RELOCATE(+1); 01403 M00S01319.fsesubs +++| END 01404 M00S01320.fsesubs +++| CURA(AUDITCTL)=CURRENT; 01405 M00S01321.fsesubs +++| P<LINEBUF>=0; 01406 M00S01322.fsesubs +++| POP; # INVISIBLY # 01407 M00S01323.fsesubs +++| POPTEMP; 01408 M00S01324.fsesubs +++| P<LINEBUF>=TEMP; # RESTORE # 01409 M00S01325.fsesubs +++| POPTEMP; 01410 M00S01326.fsesubs +++| AUDITNEXT=0; 01411 M00S01327.fsesubs +++| IOEND # OF AUDITSYNCH # 01412 M00S01328.fsesubs +++|PAGE # FILE MANAGEMENT # 01413 M00S01329.fsesubs +++| 01414 M00S01330.fsesubs +++| 01415 M00S01331.fsesubs +++|PROC FORMFDL(FILEPARM); 01416 M00S01332.fsesubs +++| BEGIN 01417 M00S01333.fsesubs +++|# 01418 M00S01334.fsesubs +++|** FORMFDL - FORMAT FILE DESCRIPTOR LINE. 01419 M00S01335.fsesubs +++|* 01420 M00S01336.fsesubs +++|* FORMFDL CREATES A FILE DESCRIPTOR LINE BASED ON THE CURRENT 01421 M00S01337.fsesubs +++|* ATTRIBUTES OF A FILE IMAGE WHICH IS ONE OF THE TWO BRACKETED 01422 M00S01338.fsesubs +++|* FILES. THE FORMAT OF THE FDL IS- CHARACTER POSITION 0 = 01423 M00S01339.fsesubs +++|* FILE NAME, 8 = YES/NO FOR THE WRITE LOCKOUT, 10 = YES/NO FOR 01424 M00S01340.fsesubs +++|* CHANGES MADE, 12 = YES/NO FOR 6/12 ASCII CHARACTER SET, 14 = 01425 M00S01341.fsesubs +++|* YES/NO FOR NUMBERED MODE, 16 = SIZE OF FILE, AND 27 = 01426 M00S01342.fsesubs +++|* CURRENT POSITION IN FILE. IF THIS FORMAT IS TO BE CHANGED, 01427 M00S01343.fsesubs +++|* CODE MUST ALSO BE CHANGED IN THE "GET STATUS" COMMAND AND IN 01428 M00S01344.fsesubs +++|* THE SESSION RESUMPTION LOGIC OF FSEMAIN. 01429 M00S01345.fsesubs +++|* 01430 M00S01346.fsesubs +++|* ENTRY FILEPARM - WHICH FILE BRACKET TO SUMMARIZE. 01431 M00S01347.fsesubs +++|* 01432 M00S01348.fsesubs +++|* EXIT LIN - CONTAINS DESCRIPTOR TEXT. 01433 M00S01349.fsesubs +++|* 01434 M00S01350.fsesubs +++|* MACROS SETCHAR. 01435 M00S01351.fsesubs +++|* 01436 M00S01352.fsesubs +++|* CALLS FORMNUM(INTERNAL). 01437 M00S01353.fsesubs +++|# 01438 M00S01354.fsesubs +++| 01439 M00S01355.fsesubs +++| ITEM FILEPARM, TMP1,TMP2,TMP3,TMP4; 01440 M00S01356.fsesubs +++| 01441 M00S01357.fsesubs +++| PROC FORMNUM(PARM); 01442 M00S01358.fsesubs +++| BEGIN 01443 M00S01359.fsesubs +++| ITEM PARM; 01444 M00S01360.fsesubs +++| TMP4=PARM; 01445 M00S01361.fsesubs +++| FOR TMP1=9 STEP -1 UNTIL 0 DO 01446 M00S01362.fsesubs +++| BEGIN 01447 M00S01363.fsesubs +++| C<TMP1,1>TMP3=MOD(TMP4,10)+O"33"; 01448 M00S01364.fsesubs +++| TMP4=TMP4/10; 01449 M00S01365.fsesubs +++| END 01450 M00S01366.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 9 DO 01451 M00S01367.fsesubs +++| BEGIN 01452 M00S01368.fsesubs +++| TMP4=C<TMP1,1>TMP3; 01453 M00S01369.fsesubs +++| TMP4=XLTDSPINT[TMP4]; 01454 M00S01370.fsesubs +++| SETCHAR(LINE,TMP2,TMP4); 01455 M00S01371.fsesubs +++| TMP2=TMP2+1; 01456 M00S01372.fsesubs +++| END 01457 M00S01373.fsesubs +++| SETCHAR(LINE,TMP2,CBLANK); 01458 M00S01374.fsesubs +++| TMP2=TMP2+1; 01459 M00S01375.fsesubs +++| END 01460 M00S01376.fsesubs +++| 01461 M00S01377.fsesubs +++| 01462 M00S01378.fsesubs +++| # START OF FORMFDL # 01463 M00S01379.fsesubs +++| 01464 M00S01380.fsesubs +++| TMP2=0; 01465 M00S01381.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 6 DO 01466 M00S01382.fsesubs +++| BEGIN 01467 M00S01383.fsesubs +++| C<0,7>TMP3=PADNAME(FILENAM[FILEPARM]); 01468 M00S01384.fsesubs +++| TMP3=C<TMP1,1>TMP3; 01469 M00S01385.fsesubs +++| TMP3=XLTDSPINT[TMP3]; 01470 M00S01386.fsesubs +++| SETCHAR(LINE,TMP2,TMP3); 01471 M00S01387.fsesubs +++| TMP2=TMP2+1; 01472 M00S01388.fsesubs +++| END 01473 M00S01389.fsesubs +++| FOR TMP2=7 STEP 1 UNTIL 15 DO SETCHAR(LINE,TMP2,CBLANK); 01474 M00S01390.fsesubs +++| SETCHAR(LINE,8,LOCKED[FILEPARM]+CDIGIT0); 01475 M00S01391.fsesubs +++| SETCHAR(LINE,10,CHANGED[FILEPARM]+CDIGIT0); 01476 M00S01392.fsesubs +++| SETCHAR(LINE,12,ASCII[FILEPARM]+CDIGIT0);
Line S01393 Modification History | |
---|---|
M01 (Removed by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01477 M01S01393.ns2607 ---| SETCHAR(LINE,14,NUMBERED[FILEPARM]+CDIGIT0);
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01478 M01S00001.ns2607 +++| SETCHAR(LINE,14,INITNMBR[FILEPARM]+CDIGIT0); 01479 M00S01394.fsesubs +++| TMP2=16; 01480 M00S01395.fsesubs +++| FORMNUM(BOTF(FILEPARM)-TOPF(FILEPARM)-1); 01481 M00S01396.fsesubs +++| FORMNUM(CURF(FILEPARM)-TOPF(FILEPARM)); 01482 M00S01397.fsesubs +++| SETCHAR(LINE,TMP2,CENDLINE); 01483 M00S01398.fsesubs +++| 01484 M00S01399.fsesubs +++| END # OF FORMFDL # 01485 M00S01400.fsesubs +++| 01486 M00S01401.fsesubs +++| 01487 M00S01402.fsesubs +++|PROC SCANFDL(NAME); 01488 M00S01403.fsesubs +++| BEGIN 01489 M00S01404.fsesubs +++|# 01490 M00S01405.fsesubs +++|** SCANFDL - ANALYZE FILE DESCRIPTOR LINE. 01491 M00S01406.fsesubs +++|* 01492 M00S01407.fsesubs +++|* ENTRY LIN - CONTAINS FDL TEXT. 01493 M00S01408.fsesubs +++|* 01494 M00S01409.fsesubs +++|* EXIT NAME - FILE NAME. 01495 M00S01410.fsesubs +++|* SCNFDLOCK, SCNFDCHNG, SCNFDASCI, SCNFDNUMB, 01496 M00S01411.fsesubs +++|* SCNFDSIZE, SCNFDCURF - UPDATED. 01497 M00S01412.fsesubs +++|* 01498 M00S01413.fsesubs +++|* USES TMPLIN. 01499 M00S01414.fsesubs +++|* CMDLIN, SCANPOS, KEYWDTYPE - WITH RESTORATION. 01500 M00S01415.fsesubs +++|* 01501 M00S01416.fsesubs +++|* CALLS COPYLIN, TOKEN. 01502 M00S01417.fsesubs +++|* 01503 M00S01418.fsesubs +++|* NOTE CALLER MUST NON-REENTRANTLY USE SCNFDXXXX. 01504 M00S01419.fsesubs +++|# 01505 M00S01420.fsesubs +++| ITEM NAME C(7); 01506 M00S01421.fsesubs +++| ITEM HOLDSCAN, HOLDSEARCH; 01507 M00S01422.fsesubs +++| 01508 M00S01423.fsesubs +++| COPYLIN(CMDLIN,TMPLIN); 01509 M00S01424.fsesubs +++| HOLDSCAN=TOKENPOS; 01510 M00S01425.fsesubs +++| HOLDSEARCH=KEYWDTYPE; 01511 M00S01426.fsesubs +++| COPYLIN(LIN,CMDLIN); 01512 M00S01427.fsesubs +++| SCANPOS=0; 01513 M00S01428.fsesubs +++| KEYWDTYPE=0; 01514 M00S01429.fsesubs +++| TOKEN; 01515 M00S01430.fsesubs +++| NAME=TOKENSYM; 01516 M00S01431.fsesubs +++| KEYWDTYPE=1; 01517 M00S01432.fsesubs +++| TOKEN; 01518 M00S01433.fsesubs +++| SCNFDLOCK=TOKENVAL; 01519 M00S01434.fsesubs +++| TOKEN; 01520 M00S01435.fsesubs +++| SCNFDCHNG=TOKENVAL; 01521 M00S01436.fsesubs +++| TOKEN; 01522 M00S01437.fsesubs +++| SCNFDASCI=TOKENVAL; 01523 M00S01438.fsesubs +++| TOKEN;
Line S01439 Modification History | |
---|---|
M01 (Removed by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01524 M01S01439.ns2607 ---| SCNFDNUMB=TOKENVAL;
Line S00002 Modification History | |
---|---|
M01 (Added by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01525 M01S00002.ns2607 +++| SCNFDNUMB=TOKENVAL LAN 1; 01526 M01S00003.ns2607 +++| SCNFDINIT=TOKENVAL/2; 01527 M00S01440.fsesubs +++| TOKEN; 01528 M00S01441.fsesubs +++| SCNFDSIZE=TOKENVAL; 01529 M00S01442.fsesubs +++| TOKEN; 01530 M00S01443.fsesubs +++| SCNFDCURF=TOKENVAL; 01531 M00S01444.fsesubs +++| 01532 M00S01445.fsesubs +++| COPYLIN(TMPLIN,CMDLIN); 01533 M00S01446.fsesubs +++| SCANPOS=HOLDSCAN; 01534 M00S01447.fsesubs +++| KEYWDTYPE=HOLDSEARCH; 01535 M00S01448.fsesubs +++| TOKEN; 01536 M00S01449.fsesubs +++| 01537 M00S01450.fsesubs +++| END # OF SCANFDL # 01538 M00S01451.fsesubs +++| 01539 M00S01452.fsesubs +++| 01540 M00S01453.fsesubs +++|PROC OPENFILE;
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01541 M01S00001.ns2172 +++|# TITLE OPENFILE - BRACKET AN INTERNAL FILE IMAGE. # 01542 M01S00002.ns2172 +++| 01543 M00S01454.fsesubs +++| IOBEGIN(OPENFILE)
Line S00003 Modification History | |
---|---|
M01 (Added by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01544 M01S00003.ns2172 +++| 01545 M00S01455.fsesubs +++|# 01546 M00S01456.fsesubs +++|** OPENFILE - BRACKET AN INTERNAL FILE IMAGE. 01547 M00S01457.fsesubs +++|* 01548 M00S01458.fsesubs +++|* OPENFILE GETS THE REQUESTED FILE INTO ONE OF THE INTERNAL 01549 M00S01459.fsesubs +++|* FILE BRACKETS, BY HOOK OR BY CROOK. VALUES OF THE 01550 M00S01460.fsesubs +++|* CHARPARM AND GETPARM ENTRIES CAN FORCE DISPOSAL OF AN 01551 M00S01461.fsesubs +++|* EXTANT INTERNAL FILE IMAGE WITH A FRESH FILE BUILD. 01552 M00S01462.fsesubs +++|* FOR CASES WHERE ANY INTERNAL IMAGE IS UNACCEPTABLE, THE 01553 M00S01463.fsesubs +++|* RESULTS OF THE FIRST OPENFILE ARE COMPARED WITH THE ENTRY 01554 M00S01464.fsesubs +++|* CONDITIONS, AND OPENFILE MIGHT THEN BE CALLED ONCE MORE. 01555 M00S01465.fsesubs +++|* 01556 M00S01466.fsesubs +++|* ENTRY READNAM - FILE NAME. 01557 M00S01467.fsesubs +++|* FILNUM - BRACKET TO OPEN INTO. 01558 M00S01468.fsesubs +++|* CHARPARM - CHARACTER SET PREFERENCE. 01559 M00S01469.fsesubs +++|* GETPARM - PREFERENCE FOR INTERNAL/LOCAL/PERMANENT. 01560 M00S01470.fsesubs +++|* 01561 M00S01471.fsesubs +++|* EXIT DESIRED FILE IS IN BRACKET. OTHER BRACKET MAY 01562 M00S01472.fsesubs +++|* BE NULLED OUT IF OTHER BRACKET WAS SAME AS THIS 01563 M00S01473.fsesubs +++|* BRACKET, AND THE CURRENT BRACKET REQUIRES NULLOUT. 01564 M00S01474.fsesubs +++|*
Line S01475 Modification History | |
---|---|
M01 (Removed by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01565 M01S01475.ns2172 ---|* CALLS ACCESSFILE, PUSHTEMP, POPTEMP.
Line S00004 Modification History | |
---|---|
M01 (Added by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01566 M01S00004.ns2172 +++|* CALLS ACCESSFILE, FORCEPAINT, POPTEMP, PUSHTEMP. 01567 M00S01476.fsesubs +++|* 01568 M00S01477.fsesubs +++|* USES TEMP WITH RESTORATION. 01569 M00S01478.fsesubs +++|#
Line S01479 Modification History | |
---|---|
M01 (Removed by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01570 M01S01479.ns2172 ---| ACCESSFILE; # REALLY DOES THE WORK # 01571 M01S01480.ns2172 ---| IF CHARPARM NQ 0 OR GETPARM GQ 2 THEN 01572 M01S01481.ns2172 ---| BEGIN # MAKE SURE GOT IT RIGHT # 01573 M01S01482.ns2172 ---| IF GETPARM GQ 2 OR (ASCII[FILNUM] NQ CHARPARM AND 01574 M01S01483.ns2172 ---| (ASCII[FILNUM] GQ 2 OR CHARPARM GQ 2)) THEN 01575 M01S01484.ns2172 ---| BEGIN # RE-OPENED OLD FILE ... # 01576 M01S01485.ns2172 ---| PUSHTEMP; 01577 M01S01486.ns2172 ---| TEMP=FILNUM; 01578 M01S01487.ns2172 ---| FOR FILNUM=1 STEP 1 UNTIL 2 DO 01579 M01S01488.ns2172 ---| BEGIN # ZAP ANY BRACKETS WITH OLD FILE # 01580 M01S01489.ns2172 ---| IF FDLF(FILNUM) EQ FDLF(TEMP) THEN 01581 M01S01490.ns2172 ---| BEGIN 01582 M01S01491.ns2172 ---| FILENAM[FILNUM]="ZZZNULL"; 01583 M01S01492.ns2172 ---| LOCKED[FILNUM]=1; 01584 M01S01493.ns2172 ---| CLOSEFILE; 01585 M01S01494.ns2172 ---| END
Line S00005 Modification History | |
---|---|
M01 (Added by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 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 +++|
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 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 +++|
Line S00051 Modification History | |
---|---|
M01 (Added by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01637 M01S00051.ns2172 +++| ACCESSFILE; # ACCESS THE FILE #
Line S00006 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01638 M01S00006.fsesu5 +++| 01639 M01S00007.fsesu5 +++| CONTROL IFEQ SINGLE,1;
Line S00004 Modification History | |
---|---|
M01 (Added by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01640 M01S00004.ns2607 +++| SCNFDINIT = 0; # PRESET NOT INITIAL FILE #
Line S00052 Modification History | |
---|---|
M01 (Added by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 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 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01644 M02S00055.fsesu5 ---| PUSHTEMP; 01645 M02S00056.fsesu5 ---| TEMP=FILNUM; 01646 M02S00057.fsesu5 ---| FOR FILNUM=1 STEP 1 UNTIL 2 DO # REMOVE BRACKETS FOR OLD FILE # 01647 M02S00058.fsesu5 ---| BEGIN 01648 M02S00059.fsesu5 ---| IF FDLF(FILNUM) EQ FDLF(TEMP) THEN 01649 M02S00060.fsesu5 ---| BEGIN 01650 M02S00061.fsesu5 ---| FILENAM[FILNUM]="ZZZNULL"; 01651 M02S00062.fsesu5 ---| LOCKED[FILNUM]=1; 01652 M02S00063.fsesu5 ---| CLOSEFILE; # CLOSE OLD FILE #
Line S01495 Modification History | |
---|---|
M01 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01653 M01S01495.fsesu5 ---| END
Line S01496 Modification History | |
---|---|
M01 (Removed by) | ns2172 |
M02 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01654 M02S01496.fsesu5 ---| FILNUM=TEMP; 01655 M02S01497.fsesu5 ---| POPTEMP; 01656 M02S01498.fsesu5 ---| LASTSIZE[1]=-1; 01657 M02S01499.fsesu5 ---| LASTSIZE[2]=-1; 01658 M02S01500.fsesu5 ---| ACCESSFILE; # THIS TIME GUARANTEED RIGHT #
Line S01501 Modification History | |
---|---|
M01 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01659 M01S01501.fsesu5 ---| END
Line S00064 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01660 M02S00064.fsesu5 ---| FILNUM=TEMP; 01661 M02S00065.fsesu5 ---| POPTEMP; 01662 M02S00066.fsesu5 ---| ACCESSFILE; # ACCESS THE OLD FILE #
Line S00008 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 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
Line S00005 Modification History | |
---|---|
M01 (Added by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01669 M01S00005.ns2607 +++| SCNFDINIT == INITFILE[FILNUM]; # CLEAR/SET INITIAL FILE #
Line S00014 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S01502.fsesubs +++| END
Line S00021 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 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 (Removed by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01685 M01S01503.ns2172 ---| IOEND # OF OPENFILE #
Line S00067 Modification History | |
---|---|
M01 (Added by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 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;
Line S00028 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01689 M01S00028.fsesu5 +++| PUSHTEMP;
Line S00070 Modification History | |
---|---|
M01 (Added by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 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
Line S00029 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01694 M01S00029.fsesu5 +++| POPTEMP;
Line S00074 Modification History | |
---|---|
M01 (Added by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01695 M01S00074.ns2172 +++| END 01696 M01S00075.ns2172 +++| 01697 M01S00076.ns2172 +++| IOEND # OPENFILE # 01698 M00S01504.fsesubs +++| 01699 M00S01505.fsesubs +++| 01700 M00S01506.fsesubs +++|PROC ACCESSFILE; 01701 M00S01507.fsesubs +++| IOBEGIN(ACCESSFILE) 01702 M00S01508.fsesubs +++|# 01703 M00S01509.fsesubs +++|** ACCESSFILE - ACCESS A FILE. 01704 M00S01510.fsesubs +++|* 01705 M00S01511.fsesubs +++|* ACCESSFILE ATTEMPTS TO LOGICALLY OPEN A FILE BY IDENTIFYING 01706 M00S01512.fsesubs +++|* IT AS ALREADY OPEN IN ONE OR BOTH FILE BRACKETS, OR AS 01707 M00S01513.fsesubs +++|* AVAILABLE FOR QUICK OPEN FROM THE FILE DIRECTORY LINES. IF
Line S01514 Modification History | |
---|---|
M01 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01708 M01S01514.fsesu5 ---|* THESE METHODS FAIL THEN WE CALL ADDFILE. NOTE THAT THERE 01709 M01S01515.fsesu5 ---|* CAN BE SITUATIONS WHERE THE USER ACTUALLY WANTS THE FILE 01710 M01S01516.fsesu5 ---|* BRACKETS AND DIRECTORY IGNORED SO THAT ADDFILE WILL BE 01711 M01S01517.fsesu5 ---|* CALLED TO READ THE LOCAL FILE AFRESH. TO ALLOW FOR THIS, 01712 M01S01518.fsesu5 ---|* THE RULE IS THAT ACCESSFILE IS ONLY CALLED BY OPENFILE, AND 01713 M01S01519.fsesu5 ---|* THE USER ALWAYS USES OPENFILE. OPENFILE IS THEN CONSIDERED 01714 M01S01520.fsesu5 ---|* RESPONSIBLE TO HANDLE OVERRIDE.
Line S00030 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S01521.fsesubs +++|* 01723 M00S01522.fsesubs +++|* ENTRY SEE OPENFILE. 01724 M00S01523.fsesubs +++|*
Line S01524 Modification History | |
---|---|
M01 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01725 M01S01524.fsesu5 ---|* EXIT ALL FILE BRACKET STRUCTURES UPDATED.
Line S00037 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S01525.fsesubs +++|*
Line S01526 Modification History | |
---|---|
M01 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01730 M01S01526.fsesu5 ---|* CALLS PADNAME, CLOSEFILE, PUSHTEMP, POPTEMP, QQSINGLE, 01731 M01S01527.fsesu5 ---|* POSZ, PUSH, POP, SCANFDL, NOPOP, ADDFILE. 01732 M01S01528.fsesu5 ---|* 01733 M01S01529.fsesu5 ---|* NOTE IN MULTI-USER MODE, THIS ROUTINE IS CAPABLE OF 01734 M01S01530.fsesu5 ---|* ACCESSING AN EXTANT INTERNAL FILE IMAGE, BUT CANNOT 01735 M01S01531.fsesu5 ---|* READ LOCAL FILES WHEN NEEDED. QQSINGLE IS THEN CALLED 01736 M01S01532.fsesu5 ---|* TO WORK OUR WAY INTO THE SAME CODE IN THE SINGLE-USER 01737 M01S01533.fsesu5 ---|* EDITOR VIA REDUNDANT PROCESSING OF SAME COMMAND. 01738 M01S01534.fsesu5 ---|* THIS RESTRICTS THE MULTI-USER CALLER TO BE A 01739 M01S01535.fsesu5 ---|* BONA-FIDE COMMAND PROCESSOR, OR TO HAVE ABSOLUTE 01740 M01S01536.fsesu5 ---|* CONFIDENCE THAT AN INTERNAL IMAGE IS AVAILABLE.
Line S00040 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01741 M01S00040.fsesu5 +++|* CALLS ADDFILE, CLOSEFILE, NOPOP, PADNAME, POP, POPTEMP, 01742 M01S00041.fsesu5 +++|* POSZ, PUSH, PUSHTEMP, QQSINGLE, SCANFDL. 01743 M00S01537.fsesubs +++|# 01744 M00S01538.fsesubs +++| ITEM NAME1 C(7), NAME2 C(7); # USE INSTANTLY # 01745 M00S01539.fsesubs +++| 01746 M00S01540.fsesubs +++| CURFILE=FILNUM; 01747 M00S01541.fsesubs +++| 01748 M00S01542.fsesubs +++| NAME1=PADNAME(READNAM); 01749 M00S01543.fsesubs +++| NAME2=PADNAME(FILENAM[FILNUM]); 01750 M00S01544.fsesubs +++| IF NAME2 NQ " " AND NAME1 NQ NAME2 THEN CLOSEFILE; 01751 M00S01545.fsesubs +++| 01752 M00S01546.fsesubs +++| PUSHTEMP; 01753 M00S01547.fsesubs +++| FOR TEMP=1 STEP 1 UNTIL 2 DO 01754 M00S01548.fsesubs +++| BEGIN 01755 M00S01549.fsesubs +++| NAME1=PADNAME(READNAM); # RECOMPUTE SINCE REENTERED # 01756 M00S01550.fsesubs +++| NAME2=PADNAME(FILENAM[TEMP]); 01757 M00S01551.fsesubs +++| IF NAME1 EQ NAME2 THEN 01758 M00S01552.fsesubs +++| BEGIN 01759 M00S01553.fsesubs +++| IF TEMP NQ FILNUM THEN 01760 M00S01554.fsesubs +++| BEGIN 01761 M00S01555.fsesubs +++| FILEATTR[FILNUM] = FILEATTR[TEMP]; 01762 M00S01556.fsesubs +++| TOPF(FILNUM) = TOPF(TEMP); 01763 M00S01557.fsesubs +++| BOTF(FILNUM) = BOTF(TEMP); 01764 M00S01558.fsesubs +++| CURF(FILNUM) = CURF(TEMP); 01765 M00S01559.fsesubs +++| FDLF(FILNUM) = FDLF(TEMP); 01766 M00S01560.fsesubs +++| END 01767 M00S01561.fsesubs +++| POSZ(CURF(FILNUM)); 01768 M00S01562.fsesubs +++| POPTEMP; 01769 M00S01563.fsesubs +++| IORET 01770 M00S01564.fsesubs +++| END 01771 M00S01565.fsesubs +++| END 01772 M00S01566.fsesubs +++| POPTEMP; 01773 M00S01567.fsesubs +++| 01774 M00S01568.fsesubs +++| FILNUM=FILNUM LXR 3; # REVERSE VALUE # 01775 M00S01569.fsesubs +++| NAME1=PADNAME(FILENAM[FILNUM]); 01776 M00S01570.fsesubs +++| IF NAME1 NQ " " THEN CLOSEFILE; # ASSURES FDL UP TO DATE # 01777 M00S01571.fsesubs +++| FILNUM=FILNUM LXR 3; # RESTORE VALUE # 01778 M00S01572.fsesubs +++| 01779 M00S01573.fsesubs +++| PUSH; 01780 M00S01574.fsesubs +++| POSZ(TOPC(FILECTL)+1); 01781 M00S01575.fsesubs +++| LINENO=BOTC(FILECTL); 01782 M00S01576.fsesubs +++| WHYLE CURRENT LS BOTC(FILECTL) DO 01783 M00S01577.fsesubs +++| BEGIN 01784 M00S01578.fsesubs +++| # ONCE SCANFDL IS CALLED MUST USE RESULTS INSTANTLY # 01785 M00S01579.fsesubs +++| SCANFDL(NAME2); 01786 M00S01580.fsesubs +++| NAME1=PADNAME(READNAM); # RECOMPUTE SINCE REENTERED # 01787 M00S01581.fsesubs +++| IF NAME2 EQ NAME1 THEN 01788 M00S01582.fsesubs +++| BEGIN 01789 M00S01583.fsesubs +++| FILENAM[FILNUM]=TRIMNAME(NAME2);
Line S00006 Modification History | |
---|---|
M01 (Added by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01790 M01S00006.ns2607 +++| INITFILE[FILNUM]=SCNFDINIT; 01791 M00S01584.fsesubs +++| LOCKED[FILNUM]=SCNFDLOCK; 01792 M00S01585.fsesubs +++| CHANGED[FILNUM]=SCNFDCHNG; 01793 M00S01586.fsesubs +++| ASCII[FILNUM]=SCNFDASCI; 01794 M00S01587.fsesubs +++| NUMBERED[FILNUM]=SCNFDNUMB; 01795 M00S01588.fsesubs +++| TOPF(FILNUM)=LINENO; 01796 M00S01589.fsesubs +++| BOTF(FILNUM)=LINENO+1+SCNFDSIZE; 01797 M00S01590.fsesubs +++| CURF(FILNUM)=TOPF(FILNUM)+SCNFDCURF; 01798 M00S01591.fsesubs +++| FDLF(FILNUM)=CURRENT; 01799 M00S01592.fsesubs +++| POSZ(CURF(FILNUM)); 01800 M00S01593.fsesubs +++| NOPOP; 01801 M00S01594.fsesubs +++| IORET 01802 M00S01595.fsesubs +++| END 01803 M00S01596.fsesubs +++| LINENO=LINENO+1+SCNFDSIZE; 01804 M00S01597.fsesubs +++| # END OF INSTANTANEOUS COMPUTATION # 01805 M00S01598.fsesubs +++| FWDZ; 01806 M00S01599.fsesubs +++| END 01807 M00S01600.fsesubs +++| POP; 01808 M00S01601.fsesubs +++| 01809 M00S01602.fsesubs +++| CONTROL IFEQ SINGLE,1;
Line S01603 Modification History | |
---|---|
M01 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01810 M01S01603.fsesu5 ---| ADDFILE;
Line S00042 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01811 M01S00042.fsesu5 +++| FILNUM = 0; # INDICATE FILE ACCESS NEEDED # 01812 M00S01604.fsesubs +++| CONTROL FI; 01813 M00S01605.fsesubs +++| CONTROL IFEQ MULTI,1;
Line S01606 Modification History | |
---|---|
M01 (Removed by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01814 M01S01606.fsesu5 ---| GOTO QQSINGLE;
Line S00043 Modification History | |
---|---|
M01 (Added by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01815 M01S00043.fsesu5 +++| GOTO QQSINGLE; # EXIT TO SINGLE-USER EDITOR # 01816 M00S01607.fsesubs +++| CONTROL FI; 01817 M00S01608.fsesubs +++| 01818 M00S01609.fsesubs +++| IOEND # OF ACCESSFILE # 01819 M00S01610.fsesubs +++| 01820 M00S01611.fsesubs +++| 01821 M00S01612.fsesubs +++|PROC CLOSEFILE; 01822 M00S01613.fsesubs +++| IOBEGIN(CLOSEFILE) 01823 M00S01614.fsesubs +++|# 01824 M00S01615.fsesubs +++|** CLOSEFILE - SAVE CURRENT FILE STATUS IN DESCRIPTOR LINE. 01825 M00S01616.fsesubs +++|* 01826 M00S01617.fsesubs +++|* ENTRY FILNUM - BRACKET TO CLOSE. 01827 M00S01618.fsesubs +++|* ALL BRACKET STRUCTURES CONTAIN VALID STATUS. 01828 M00S01619.fsesubs +++|* 01829 M00S01620.fsesubs +++|* EXIT FILE DESCRIPTOR LINE UPDATED INTO FILE DIRECTORY. 01830 M00S01621.fsesubs +++|* 01831 M00S01622.fsesubs +++|* CALLS PUSH, POP, POSZ, REPY, FORMFDL. 01832 M00S01623.fsesubs +++|* 01833 M00S01624.fsesubs +++|* NOTE IF BOTH BRACKETS OPEN TO SAME FILE, CERTAIN 01834 M00S01625.fsesubs +++|* ATTRIBUTES MUST BE MERGED. 01835 M00S01626.fsesubs +++|# 01836 M00S01627.fsesubs +++| PUSH; 01837 M00S01628.fsesubs +++| POSZ(FDLF(FILNUM)); 01838 M00S01629.fsesubs +++| IF FDLF(1) EQ FDLF(2) THEN 01839 M00S01630.fsesubs +++| BEGIN
Line S00007 Modification History | |
---|---|
M01 (Added by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01840 M01S00007.ns2607 +++| INITFILE[1]=INITFILE[1] LOR INITFILE[2]; 01841 M00S01631.fsesubs +++| LOCKED[1]=LOCKED[1] LOR LOCKED[2]; 01842 M00S01632.fsesubs +++| CHANGED[1]=CHANGED[1] LOR CHANGED[2];
Line S00008 Modification History | |
---|---|
M01 (Added by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01843 M01S00008.ns2607 +++| INITFILE[2]=INITFILE[1]; 01844 M00S01633.fsesubs +++| LOCKED[2]=LOCKED[1]; 01845 M00S01634.fsesubs +++| CHANGED[2]=CHANGED[1]; 01846 M00S01635.fsesubs +++| END 01847 M00S01636.fsesubs +++| FORMFDL(FILNUM); 01848 M00S01637.fsesubs +++| REPY; 01849 M00S01638.fsesubs +++| PUSHTEMP; 01850 M00S01639.fsesubs +++| IF FILENAM[FILNUM] NQ "ZZZNULL" THEN 01851 M00S01640.fsesubs +++| BEGIN 01852 M00S01641.fsesubs +++| FOR TEMP=2 STEP 1 UNTIL 4 DO 01853 M00S01642.fsesubs +++| BEGIN 01854 M00S01643.fsesubs +++| NONTRIVFILE[FILNUM,TEMP]=NONTRIVFILE[FILNUM,TEMP-1]; 01855 M00S01644.fsesubs +++| END 01856 M00S01645.fsesubs +++| NONTRIVFILE[FILNUM,1]=FDLF(FILNUM); 01857 M00S01646.fsesubs +++| END 01858 M00S01647.fsesubs +++| ELSE 01859 M00S01648.fsesubs +++| BEGIN 01860 M00S01649.fsesubs +++| FOR TEMP=1 STEP 1 UNTIL 4 DO 01861 M00S01650.fsesubs +++| BEGIN 01862 M00S01651.fsesubs +++| IF NONTRIVFILE[1,TEMP] EQ FDLF(FILNUM) 01863 M00S01652.fsesubs +++| THEN NONTRIVFILE[1,TEMP]=0; 01864 M00S01653.fsesubs +++| IF NONTRIVFILE[2,TEMP] EQ FDLF(FILNUM) 01865 M00S01654.fsesubs +++| THEN NONTRIVFILE[2,TEMP]=0; 01866 M00S01655.fsesubs +++| END 01867 M00S01656.fsesubs +++| END 01868 M00S01657.fsesubs +++| POPTEMP; 01869 M00S01658.fsesubs +++| POP; 01870 M00S01659.fsesubs +++| 01871 M00S01660.fsesubs +++| IOEND # OF CLOSEFILE # 01872 M00S01661.fsesubs +++|PAGE # MISC IO ROUTINES # 01873 M00S01662.fsesubs +++| 01874 M00S01663.fsesubs +++| 01875 M00S01664.fsesubs +++|PROC GETCMD; 01876 M00S01665.fsesubs +++| IOBEGIN(GETCMD) 01877 M00S01666.fsesubs +++|# 01878 M00S01667.fsesubs +++|** GETCMD - READ COMMAND STRING FROM TERMINAL. 01879 M00S01668.fsesubs +++|* 01880 M00S01669.fsesubs +++|* EXIT CMDLIN - TERMINAL INPUT LINE, CONVERTED TO 01881 M00S01670.fsesubs +++|* INTERNAL CHARSET FROM 6/12 ASCII. 01882 M00S01671.fsesubs +++|* 01883 M00S01672.fsesubs +++|* CALLS PROMPT, CONVIN. 01884 M00S01673.fsesubs +++|* 01885 M00S01674.fsesubs +++|* NOTE SHOULD BE USED ONLY IN LINE-EDITING. 01886 M00S01675.fsesubs +++|# 01887 M00S01676.fsesubs +++| PROMPT(QCCKWRD); 01888 M00S01677.fsesubs +++| CONVIN(CMDLIN,2); 01889 M00S01678.fsesubs +++| IOEND # OF GETCMD # 01890 M00S01679.fsesubs +++| 01891 M00S01680.fsesubs +++| 01892 M00S01681.fsesubs +++|PROC PROMPT(STR); 01893 M00S01682.fsesubs +++| IOBEGIN(PROMPT) 01894 M00S01683.fsesubs +++|# 01895 M00S01684.fsesubs +++|** PROMPT - ISSUE PROMPT TO TERMINAL AND INPUT LINE. 01896 M00S01685.fsesubs +++|* 01897 M00S01686.fsesubs +++|* ENTRY STR - PROMPT STRING, 6/12 ASCII CHARSET. 01898 M00S01687.fsesubs +++|* 01899 M00S01688.fsesubs +++|* EXIT TMPLIN - INPUT FROM TERMINAL. 01900 M00S01689.fsesubs +++|* 01901 M00S01690.fsesubs +++|* CALLS TTLIN, TTSYNC, VDTRDC, VDTDRN$. 01902 M00S01691.fsesubs +++|* 01903 M00S01692.fsesubs +++|* NOTE SHOULD BE USED ONLY IN LINE-EDITING. 01904 M00S01693.fsesubs +++|# 01905 M00S01694.fsesubs +++| ITEM STR C(10);
Line S01695 Modification History | |
---|---|
M01 (Removed by) | ns2132 |
Seq # *Modification Id* Act ----------------------------+ 01906 M01S01695.ns2132 ---| TTLIN(STR);
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2132 |
Seq # *Modification Id* Act ----------------------------+ 01907 M01S00001.ns2132 +++| CONTROL IFEQ SINGLE,1; 01908 M01S00002.ns2132 +++| IF INTERACT THEN TTLIN(STR); 01909 M01S00003.ns2132 +++| ELSE TTLIN(NULLWRD); 01910 M01S00004.ns2132 +++| CONTROL FI; 01911 M01S00005.ns2132 +++| CONTROL IFEQ MULTI,1; 01912 M01S00006.ns2132 +++| TTLIN(STR); 01913 M01S00007.ns2132 +++| CONTROL FI; 01914 M00S01696.fsesubs +++| TTSYNC; 01915 M00S01697.fsesubs +++| VDTRDC(TMPLIN,BUFWID2P1); 01916 M00S01698.fsesubs +++| IOEND # OF PROMPT # 01917 M00S01699.fsesubs +++| 01918 M00S01700.fsesubs +++|
Line S01701 Modification History | |
---|---|
M01 (Removed by) | ns2571 |
Seq # *Modification Id* Act ----------------------------+ 01919 M01S01701.ns2571 ---|PROC DOJOIN;
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2571 |
Seq # *Modification Id* Act ----------------------------+ 01920 M01S00001.ns2571 +++|PROC DOJOIN(SETJUMP); 01921 M00S01702.fsesubs +++| IOBEGIN(DOJOIN) 01922 M00S01703.fsesubs +++|# 01923 M00S01704.fsesubs +++|** DOJOIN - MERGE TWO ADJACENT WORKFILE LINES. 01924 M00S01705.fsesubs +++|* 01925 M00S01706.fsesubs +++|* ENTRY CURRENT - POINTS AT FIRST WORKFILE LINE. 01926 M00S01707.fsesubs +++|* CHRPTR3 - CHARACTER POSITION TO MERGE AT.
Line S00002 Modification History | |
---|---|
M01 (Added by) | ns2571 |
Seq # *Modification Id* Act ----------------------------+ 01927 M01S00002.ns2571 +++|* SETJUMP - IF NONZERO, REMOVE LEADING SPACES ON SECOND 01928 M01S00003.ns2571 +++|* LINE TO BE JOINED IF AUTOINDENTING. 01929 M00S01708.fsesubs +++|* NUMBERED[CURFILE] - INDICATES SEQUENCE MODE. 01930 M00S01709.fsesubs +++|* 01931 M00S01710.fsesubs +++|* EXIT LIN - COPY OF WHAT IS MERGED IN FILE. 01932 M00S01711.fsesubs +++|*
Line S01712 Modification History | |
---|---|
M01 (Removed by) | ns2571 |
Seq # *Modification Id* Act ----------------------------+ 01933 M01S01712.ns2571 ---|* MACROS SETCHAR.
Line S00004 Modification History | |
---|---|
M01 (Added by) | ns2571 |
Seq # *Modification Id* Act ----------------------------+ 01934 M01S00004.ns2571 +++|* MACROS GETCHAR, SETCHAR. 01935 M00S01713.fsesubs +++|*
Line S01714 Modification History | |
---|---|
M01 (Removed by) | ns2571 |
Seq # *Modification Id* Act ----------------------------+ 01936 M01S01714.ns2571 ---|* CALLS FWDZ, TRIMPAD, LSHIFT, COPYLIN, BAKZ, EXTENDC, 01937 M01S01715.ns2571 ---|* CONCAT, REPX, PUSH, DELX, POP.
Line S00005 Modification History | |
---|---|
M01 (Added by) | ns2571 |
Seq # *Modification Id* Act ----------------------------+ 01938 M01S00005.ns2571 +++|* CALLS BAKZ, CONCAT, COPYLIN, DELX, EXTENDC, FWDZ, LSHIFT, 01939 M01S00006.ns2571 +++|* POP, POPTEMP, PUSH, PUSHTEMP, REPX, TRIMPAD. 01940 M00S01716.fsesubs +++|* 01941 M00S01717.fsesubs +++|* USES TTYLIN. 01942 M00S01718.fsesubs +++|#
Line S00007 Modification History | |
---|---|
M01 (Added by) | ns2571 |
Seq # *Modification Id* Act ----------------------------+ 01943 M01S00007.ns2571 +++| ITEM SETJUMP; 01944 M01S00008.ns2571 +++| ITEM TMP1, TMP2; # USE INSTANTLY # 01945 M01S00009.ns2571 +++| 01946 M00S01719.fsesubs +++| IF CURRENT LS BOTF(CURFILE)-1 THEN # CAN DO IT # 01947 M00S01720.fsesubs +++| BEGIN
Line S00010 Modification History | |
---|---|
M01 (Added by) | ns2571 |
Seq # *Modification Id* Act ----------------------------+ 01948 M01S00010.ns2571 +++| PUSHTEMP; 01949 M01S00011.ns2571 +++| IF AUTOINDENT THEN TEMP = SETJUMP; ELSE TEMP = 0; 01950 M01S00012.ns2571 +++| # END OF NON-REENTRANT PARAMETER USAGE # 01951 M00S01721.fsesubs +++| FWDZ; # READ SECOND HALF #
Line S01722 Modification History | |
---|---|
M01 (Removed by) | ns2226 |
Seq # *Modification Id* Act ----------------------------+ 01952 M01S01722.ns2226 ---| SETCHAR(LINE,EDITFIELD,CENDLINE); # KILL PROTECTED #
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/fsesubs.txt · Last modified: (external edit)