Seq # *Modification Id* Act
----------------------------+
00001 M01S00001.fseex +++|PRGM FSEEX;
00002 M01S00002.fseex +++| BEGIN
00003 M01S00003.fseex +++|#
00004 M01S00004.fseex +++|*** FSEEX - NOS FULL SCREEN EDITOR.
00005 M01S00005.fseex +++|*
Line S00006 Modification History |
M01 (Added by) | fseex |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00006 M02S00006.281l803 ---|* COPYRIGHT CONTROL DATA CORPORATION, 1983.
00007 M01S00001.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00008 M01S00007.fseex +++|#
00009 M01S00008.fseex +++|
00010 M01S00009.fseex +++|
00011 M01S00010.fseex +++| XDEF LABEL FSE;
00012 M01S00011.fseex +++|
00013 M01S00012.fseex +++| XREF PROC BLDINIT;
00014 M01S00013.fseex +++| XREF PROC BLDTERM;
00015 M01S00001.ns2206 +++| XREF PROC DISSJ; # DISABLE/ENABLE SSJ= #
00016 M01S00014.fseex +++| XREF PROC EDTINIT;
00017 M01S00015.fseex +++| XREF PROC EDTTERM;
00018 M01S00016.fseex +++| XREF PROC PROCESS;
00019 M01S00017.fseex +++| XREF PROC ENDRUN;
00020 M01S00018.fseex +++|
00021 M01S00019.fseex +++|FSE:
00022 M01S00002.ns2206 +++| DISSJ(2); # DISABLE SSJ= #
00023 M01S00020.fseex +++| BLDINIT;
00024 M01S00021.fseex +++| EDTINIT;
00025 M01S00022.fseex +++| PROCESS;
00026 M01S00023.fseex +++| EDTTERM;
00027 M01S00024.fseex +++| BLDTERM;
00028 M01S00025.fseex +++| ENDRUN;
00029 M01S00026.fseex +++|
00030 M01S00027.fseex +++|
00031 M01S00028.fseex +++| END TERM
00032 M01S00014.fseex +++|FSEFILE
00033 M01S00000.fseex +++|
00034 M01S00004.fseex +++|
00035 M01S00005.fseex +++|#
00036 M01S00006.fseex +++|*** FSEFILE -- SUBROUTINES FOR FILE ACCESS.
00037 M01S00007.fseex +++|*
Line S00008 Modification History |
M01 (Added by) | fseex |
M02 (Yanked) (Updated by) | @000009 |
Seq # *Modification Id* Act
----------------------------+
00038 M02S00008.@000009 ---|* COPYRIGHT CONTROL DATA CORPORATION, 1983.
00039 M01S00001.@000009 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00040 M01S00009.fseex +++|*
00041 M01S00010.fseex +++|* FSEFILE HAS THE ROUTINES TO TEST THE ATTRIBUTES OF
00042 M01S00011.fseex +++|* VARIOUS LOCAL FILES. THIS IS THEREFORE USED ONLY FOR
00043 M01S00012.fseex +++|* THE SINGLE-USER VERSION OF FSE AND IS NOT PROGRAMMED
00044 M01S00013.fseex +++|* REENTRANTLY. THIS MODULE IS A CANDIDATE FOR FUTURE
00045 M01S00014.fseex +++|* OVERLAY STRUCTURING. IT MAY BE USED BY THE FSEMAIN MODULE
00046 M01S00015.fseex +++|* AND THE FILCMD MODULE ONLY.
00047 M01S00016.fseex +++|#
00048 M01S00017.fseex +++|
00049 M01S00018.fseex +++| DEF LISTCON #0#;
00050 M01S00019.fseex +++|
00051 M01S00020.fseex +++|CONTROL EJECT; # UNIVERSAL DECLARES #
00052 M01S00021.fseex +++|
00053 M01S00022.fseex +++|*IFCALL SINGLE,COMFSGL
00054 M01S00023.fseex +++|*IFCALL ONLY,COMFONL
00055 M01S00024.fseex +++|*IFCALL MULTI,COMFMLT
00056 M01S00025.fseex +++|*CALL COMFFSE
00057 M01S00026.fseex +++|
00058 M01S00027.fseex +++| # EXTERNALS #
00059 M01S00028.fseex +++|
00060 M01S00029.fseex +++|
00061 M01S00030.fseex +++|XDEF
00062 M01S00031.fseex +++| BEGIN
00063 M01S00032.fseex +++|*CALL COMFXFL
00064 M01S00033.fseex +++| END
00065 M01S00034.fseex +++|
00066 M01S00035.fseex +++|XREF ARRAY MAXADDR;; # KEY ADDRESSES IN BUFFER SEGMENT #
00067 M01S00036.fseex +++|XREF ARRAY WORKBUF;;
00068 M01S00037.fseex +++|
00069 M01S00038.fseex +++|XREF PROC FASTRLC;
00070 M01S00039.fseex +++|
00071 M01S00040.fseex +++|XREF
00072 M01S00041.fseex +++| BEGIN
00073 M01S00042.fseex +++| PROC PF;
00074 M01S00043.fseex +++| PROC FILINFO;
00075 M01S00044.fseex +++| PROC READ;
00076 M01S00045.fseex +++| PROC READC;
00077 M01S00046.fseex +++| PROC REWIND;
00078 M01S00047.fseex +++| PROC FLDLEN;
00079 M01S00001.@000005 +++| PROC RTIME;
00080 M01S00002.@000005 +++| PROC TTLIN;
00081 M01S00003.@000005 +++| PROC TTSTR;
00082 M01S00004.@000005 +++| PROC VDTCLO;
00083 M01S00005.@000005 +++| PROC VDTOPN;
00084 M01S00001.@000003 +++| PROC VDTPRT$; # PROMPT ON/OFF #
00085 M01S00048.fseex +++| END
00086 M01S00049.fseex +++|
00087 M01S00050.fseex +++|XREF
00088 M01S00051.fseex +++| BEGIN
00089 M01S00052.fseex +++|*CALL COMFXSB
00090 M01S00053.fseex +++|*CALL COMFXSC
00091 M01S00054.fseex +++|*CALL COMFXED
00092 M01S00055.fseex +++|*CALL COMFXWK
00093 M01S00056.fseex +++| END
00094 M01S00057.fseex +++|
00095 M01S00058.fseex +++| # COMMON DATA #
00096 M01S00059.fseex +++|
00097 M01S00060.fseex +++|*CALL COMFDS1
00098 M01S00061.fseex +++|*CALL COMFVD2
00099 M01S00062.fseex +++|*CALL COMFDS2
00100 M01S00001.@000006 +++|*CALL COMSPFM
00101 M01S00063.fseex +++|PAGE # HERE WE GO #
00102 M01S00064.fseex +++|
00103 M01S00065.fseex +++|
00104 M01S00066.fseex +++|FUNC MSEQUIP(NAME) B;
00105 M01S00067.fseex +++| BEGIN
00106 M01S00068.fseex +++|#
00107 M01S00069.fseex +++|** MSEQUIP - TEST FILE ATTRIBUTES FOR MASS STORAGE.
00108 M01S00070.fseex +++|*
00109 M01S00071.fseex +++|* ENTRY NAME - NAME OF FILE TO INSPECT.
00110 M01S00072.fseex +++|*
00111 M01S00073.fseex +++|* EXIT MSEQUIP - TRUE IF ALREADY ON MASS STORAGE OR IF
00112 M01S00074.fseex +++|* ANTICIPATED TO BE ON MASS STORAGE BY DEFAULT.
00113 M01S00075.fseex +++|* OTHERWISE FALSE.
00114 M01S00076.fseex +++|*
00115 M01S00077.fseex +++|* CALLS GETINFO, TRIMNAME.
00116 M01S00078.fseex +++|*
00117 M01S00079.fseex +++|* NOTE ASSUMES CORRECT DEFINITION OF DEFAULT NAMES
00118 M01S00080.fseex +++|* FOR INPUT AND OUTPUT FILES.
00119 M01S00081.fseex +++|#
00120 M01S00082.fseex +++| ITEM NAME C(7);
00121 M01S00001.@000008 +++|
00122 M01S00002.@000008 +++| FILINFSTAT = 0;
00123 M01S00083.fseex +++| IF B<0,42>NAME EQ 0 THEN
00124 M01S00084.fseex +++| BEGIN
00125 M01S00085.fseex +++| MSEQUIP=FALSE;
00126 M01S00086.fseex +++| RETURN;
00127 M01S00087.fseex +++| END
00128 M01S00088.fseex +++| MSEQUIP=TRUE;
00129 M01S00089.fseex +++| GETINFO(NAME);
00130 M01S00090.fseex +++| IF FILINFSTAT EQ 0 THEN
00131 M01S00091.fseex +++| BEGIN
00132 M01S00092.fseex +++| IF TRIMNAME(NAME) EQ DEFINPNAM THEN MSEQUIP=FALSE;
00133 M01S00093.fseex +++| IF TRIMNAME(NAME) EQ DEFOUTNAM THEN MSEQUIP=FALSE;
00134 M01S00094.fseex +++| END
00135 M01S00095.fseex +++| ELSE
00136 M01S00096.fseex +++| BEGIN
00137 M01S00097.fseex +++| IF NOT (FILINFRMS AND FILINFREAD) THEN MSEQUIP=FALSE;
00138 M01S00098.fseex +++| END
00139 M01S00099.fseex +++| END # OF MSEQUIP #
00140 M01S00100.fseex +++|
00141 M01S00101.fseex +++|FUNC TTEQUIP(NAME) B;
00142 M01S00102.fseex +++| BEGIN
00143 M01S00103.fseex +++|#
00144 M01S00104.fseex +++|** TTEQUIP - TEST FILE ATTRIBUTES FOR TERMINAL.
00145 M01S00105.fseex +++|*
00146 M01S00106.fseex +++|* ENTRY NAME - FILE TO TEST.
00147 M01S00107.fseex +++|*
00148 M01S00108.fseex +++|* EXIT TTEQUIP - TRUE IF FILE ALREADY ASSIGNED TO TERMINAL
00149 M01S00109.fseex +++|* EQUIPMENT, OR IF ANTICIPATED TO BE SO ASSIGNED
00150 M01S00110.fseex +++|* BY DEFAULT. OTHERWISE FALSE.
00151 M01S00111.fseex +++|*
00152 M01S00112.fseex +++|* CALLS GETINFO, TRIMNAME.
00153 M01S00113.fseex +++|*
00154 M01S00114.fseex +++|* NOTE ASSUMES CORRECT DEFINITION OF DEFAULT NAMES FOR
00155 M01S00115.fseex +++|* INPUT AND OUTPUT FILES.
00156 M01S00116.fseex +++|#
00157 M01S00117.fseex +++| ITEM NAME C(7);
00158 M01S00118.fseex +++| TTEQUIP=FALSE;
00159 M01S00119.fseex +++| IF B<0,42>NAME EQ 0 THEN RETURN;
00160 M01S00120.fseex +++| GETINFO(NAME);
00161 M01S00121.fseex +++| IF FILINFSTAT EQ 0 THEN # NOT EXIST #
00162 M01S00122.fseex +++| BEGIN
00163 M01S00123.fseex +++| IF TRIMNAME(NAME) EQ DEFINPNAM THEN TTEQUIP=TRUE;
00164 M01S00124.fseex +++| IF TRIMNAME(NAME) EQ DEFOUTNAM THEN TTEQUIP=TRUE;
00165 M01S00125.fseex +++| END
00166 M01S00126.fseex +++| ELSE # FILE ALREADY EXIST #
00167 M01S00127.fseex +++| BEGIN
00168 M01S00128.fseex +++| IF FILINFTTY THEN TTEQUIP=TRUE;
00169 M01S00129.fseex +++| END
00170 M01S00130.fseex +++| END # OF TTEQUIP #
00171 M01S00131.fseex +++|
00172 M01S00132.fseex +++|
00173 M01S00133.fseex +++|FUNC WRITEABLE(NAME) B;
00174 M01S00134.fseex +++| BEGIN
00175 M01S00135.fseex +++|#
00176 M01S00136.fseex +++|** WRITEABLE - TEST FILE FOR NON-READ-ONLY DISK.
00177 M01S00137.fseex +++|*
00178 M01S00138.fseex +++|* ENTRY NAME - FILE TO INSPECT.
00179 M01S00139.fseex +++|*
00180 M01S00140.fseex +++|* EXIT - WRITEABLE - TRUE IF AND ONLY IF FILE IS ON
00181 M01S00141.fseex +++|* MASS STORAGE AND HAS NO ACCESS RESTRICTIONS.
00182 M01S00142.fseex +++|*
00183 M01S00143.fseex +++|* CALLS MSEQUIP.
00184 M01S00144.fseex +++|*
00185 M01S00145.fseex +++|* NOTE CODING ASSUMES GETINFO WILL BE CALLED FOR THIS
00186 M01S00146.fseex +++|* FILE NO LATER THAN COMPLETION OF MSEQUIP.
00187 M01S00147.fseex +++|#
00188 M01S00148.fseex +++| ITEM NAME C(7);
00189 M01S00149.fseex +++| WRITEABLE=FALSE;
00190 M01S00150.fseex +++| IF MSEQUIP(NAME) THEN
00191 M01S00151.fseex +++| BEGIN
00192 M01S00152.fseex +++| WRITEABLE=FILINFWRIT;
00193 M01S00153.fseex +++| IF FILINFSTAT EQ 0 THEN WRITEABLE=TRUE;
00194 M01S00154.fseex +++| END
00195 M01S00155.fseex +++| END # OF WRITEABLE #
00196 M01S00156.fseex +++|
00197 M01S00157.fseex +++|
00198 M01S00158.fseex +++|FUNC LOCALFILE(NAME) B;
00199 M01S00159.fseex +++| BEGIN
00200 M01S00160.fseex +++|#
00201 M01S00161.fseex +++|** LOCALFILE - TEST FILE ATTRIBUTES FOR LOFT.
00202 M01S00162.fseex +++|*
00203 M01S00163.fseex +++|* ENTRY NAME - FILE TO INSPECT.
00204 M01S00164.fseex +++|*
00205 M01S00165.fseex +++|* EXIT LOCALFILE - TRUE IF AND ONLY IF FILE IS ON
00206 M01S00166.fseex +++|* MASS STORAGE, HAS WRITE PERMISSION, AND IS OF
00207 M01S00167.fseex +++|* LOCAL FILE TYPE.
00208 M01S00168.fseex +++|*
00209 M01S00169.fseex +++|* CALLS WRITEABLE.
00210 M01S00170.fseex +++|*
00211 M01S00171.fseex +++|* NOTE ASSUMES GETINFO IS CALLED BY WRITEABLE.
00212 M01S00172.fseex +++|#
00213 M01S00173.fseex +++| ITEM NAME C(7);
00214 M01S00174.fseex +++| LOCALFILE=FALSE;
00215 M01S00175.fseex +++| IF WRITEABLE(NAME) THEN
00216 M01S00176.fseex +++| BEGIN
00217 M01S00177.fseex +++| IF FILINFFT EQ 0
00218 M01S00178.fseex +++| OR FILINFFT EQ 6 THEN LOCALFILE=TRUE;
00219 M01S00179.fseex +++| END
00220 M01S00180.fseex +++| END # OF LOCALFILE #
00221 M01S00181.fseex +++|
00222 M01S00182.fseex +++|
00223 M01S00183.fseex +++|PROC GETINFO(NAME);
00224 M01S00184.fseex +++| BEGIN
00225 M01S00185.fseex +++|#
00226 M01S00186.fseex +++|** GETINFO - INTERFACE TO FILINFO MACRO.
00227 M01S00187.fseex +++|*
00228 M01S00188.fseex +++|* ENTRY NAME - FILE TO PROCESS.
00229 M01S00189.fseex +++|*
00230 M01S00190.fseex +++|* EXIT FILINFPARMS ARRAY IS FILLED IN.
00231 M01S00191.fseex +++|*
00232 M01S00192.fseex +++|* CALLS TRIMNAME, FILINFO.
00233 M01S00193.fseex +++|#
00234 M01S00194.fseex +++| ITEM NAME C(7), NEWNAME C(7);
00235 M01S00195.fseex +++| NEWNAME=TRIMNAME(NAME);
00236 M01S00196.fseex +++| FILINFNAME=NEWNAME;
00237 M01S00197.fseex +++| FILINFO(FILINFPARMS);
00238 M01S00198.fseex +++| END # OF GETINFO #
00239 M01S00199.fseex +++|
00240 M01S00200.fseex +++|
00241 M01S00201.fseex +++|FUNC ASSGNFILE(NAME) B;
00242 M01S00202.fseex +++| BEGIN
00243 M01S00203.fseex +++|#
00244 M01S00204.fseex +++|** ASSGNFILE - TEST FILE FOR FNT ASSIGNMENT.
00245 M01S00205.fseex +++|*
00246 M01S00206.fseex +++|* ENTRY NAME - FILE TO INSPECT.
00247 M01S00207.fseex +++|*
00248 M01S00208.fseex +++|* EXIT ASSGNFILE - TRUE IF AND ONLY IF THIS JOB HAS
00249 M01S00209.fseex +++|* AN FNT FOR THE FILE.
00250 M01S00210.fseex +++|*
00251 M01S00211.fseex +++|* CALLS GETINFO.
00252 M01S00212.fseex +++|#
00253 M01S00213.fseex +++| ITEM NAME C(7);
00254 M01S00214.fseex +++| ASSGNFILE=FALSE;
00255 M01S00215.fseex +++| IF B<0,42>NAME EQ 0 THEN RETURN;
00256 M01S00216.fseex +++| GETINFO(NAME);
00257 M01S00217.fseex +++| IF FILINFSTAT NQ 0 THEN ASSGNFILE=TRUE;
00258 M01S00218.fseex +++| END # OF ASSGNFILE #
00259 M01S00219.fseex +++|
00260 M01S00220.fseex +++|
00261 M01S00221.fseex +++|PROC VFYFILE(NAME,MODE);
00262 M01S00222.fseex +++| BEGIN
00263 M01S00223.fseex +++|#
00264 M01S00224.fseex +++|** VFYFILE - VERIFY FILE AS LEGAL TO BE EDITED.
00265 M01S00225.fseex +++|*
00266 M01S00226.fseex +++|* ENTRY NAME - FILE TO INSPECT.
00267 M01S00227.fseex +++|* MODE - POSITIVE IMPLIES USE ERRJUMP FOR FAILURES,
00268 M01S00228.fseex +++|* NEGATIVE IMPLIES ABORT THE JOB STEP VIA MORTAL.
00269 M01S00229.fseex +++|*
00270 M01S00230.fseex +++|* EXIT TO CALLER IF FILE IS LEGAL, OTHERWISE TO
00271 M01S00231.fseex +++|* SPECIFIED ERROR ROUTINE WITHOUT RETURN.
00272 M01S00232.fseex +++|*
00273 M01S00233.fseex +++|* CALLS ERRJUMP, MORTAL, ERROR(INTERNAL), COMPARE(INTERNAL).
00274 M01S00234.fseex +++|#
00275 M01S00235.fseex +++| ITEM NAME C(7), MODE I;
00276 M01S00236.fseex +++|
00277 M01S00237.fseex +++| PROC ERROR(STR);
00278 M01S00238.fseex +++| BEGIN
00279 M01S00239.fseex +++| ITEM STR C(40);
00280 M01S00240.fseex +++| IF MODE GQ 0 THEN ERRJUMP(STR);
00281 M01S00241.fseex +++| MORTAL(STR);
00282 M01S00242.fseex +++| END
00283 M01S00243.fseex +++|
00284 M01S00244.fseex +++| PROC COMPARE(PARM);
00285 M01S00245.fseex +++| BEGIN
00286 M01S00246.fseex +++| ITEM PARM C(7), NAME1 C(7), NAME2 C(7);
00287 M01S00247.fseex +++| NAME1=TRIMNAME(NAME);
00288 M01S00248.fseex +++| NAME2=TRIMNAME(PARM);
00289 M01S00249.fseex +++| IF NAME1 EQ NAME2 THEN ERROR("RESERVED FILE$");
00290 M01S00250.fseex +++| END
00291 M01S00251.fseex +++|
00292 M01S00252.fseex +++| COMPARE(INPTNAM);
00293 M01S00253.fseex +++| COMPARE(OUTPNAM);
00294 M01S00254.fseex +++| COMPARE(WORKNAM);
00295 M01S00255.fseex +++| COMPARE("ZZZMOVE");
Line S00256 Modification History |
M01 (Added by) | fseex |
M02 (Yanked) (Updated by) | @000008 |
Seq # *Modification Id* Act
----------------------------+
00296 M02S00256.@000008 ---| IF NOT MSEQUIP(NAME) THEN ERROR("FILE MUST BE ON DISK$");
00297 M01S00003.@000008 +++| IF NOT MSEQUIP(NAME) THEN
00298 M01S00004.@000008 +++| BEGIN
00299 M01S00005.@000008 +++| IF FILINFSTAT NQ 0 AND FILINFRMS THEN
00300 M01S00006.@000008 +++| BEGIN # IF FILE HAS NO READ PERMISSION #
00301 M01S00007.@000008 +++| ERROR("FILE DOES NOT HAVE READ PERMISSION$");
00302 M01S00008.@000008 +++| END
00303 M01S00009.@000008 +++| ELSE
00304 M01S00010.@000008 +++| BEGIN # IF FILE IS NOT ON DISK #
00305 M01S00011.@000008 +++| ERROR("FILE MUST BE ON DISK$");
00306 M01S00012.@000008 +++| END
00307 M01S00013.@000008 +++| END
00308 M01S00257.fseex +++| END # OF VFYFILE #
00309 M01S00258.fseex +++|PAGE # FILE READ SUBROUTINE #
00310 M01S00259.fseex +++|
00311 M01S00260.fseex +++|
00312 M01S00261.fseex +++|PROC FILEREAD;
00313 M01S00262.fseex +++| BEGIN
00314 M01S00263.fseex +++|#
00315 M01S00264.fseex +++|** FILEREAD - READ A LOCAL FILE INTO FILE IMAGE BRACKET.
00316 M01S00265.fseex +++|*
00317 M01S00266.fseex +++|* NOTE THAT TO SAVE THE CPU OVERHEAD OF RELOCATING THE
00318 M01S00267.fseex +++|* POINTER STACKS FOR EVERY INSERTION, WE CALL WORKIO
00319 M01S00268.fseex +++|* DIRECTLY, THEN WE CALL RELOCATE TO CORRECT FOR BYPASSING
00320 M01S00269.fseex +++|* THE "INSY" INTERFACE.
00321 M01S00270.fseex +++|*
00322 M01S00271.fseex +++|* NOTE THAT THE "USRBRK" FLAG IS CONTINUALLY CHECKED
00323 M01S00272.fseex +++|* TO DETECT AN EXTERNAL INTERRUPT.
00324 M01S00273.fseex +++|*
00325 M01S00274.fseex +++|* ENTRY FILNUM - WHICH BRACKET.
00326 M01S00275.fseex +++|* FILEFET - ALREADY INITIALIZED.
00327 M01S00276.fseex +++|* ASCII[FILNUM] - CHARACTER SET.
00328 M01S00277.fseex +++|*
00329 M01S00278.fseex +++|* EXIT NUMBERED[FILNUM] - WHETHER FILE REALLY NUMBERED.
00330 M01S00279.fseex +++|* FILEFET - AT EOI, OR INDETERINATE IF USER BREAK.
00331 M01S00280.fseex +++|*
00332 M01S00281.fseex +++|* CALLS READ, READC, CONVIN, GETLNUM, TRIMPAD, INS, FASTRLC.
00333 M01S00282.fseex +++|*
00334 M01S00283.fseex +++|* USES WIDTHFOUND.
00335 M01S00284.fseex +++|#
00336 M01S00006.@000005 +++| DEF AVERAGE #500#; # AVERAGE FILE SIZE #
00337 M01S00007.@000005 +++| DEF TWOANAHALF #2500#; # TWO AND A HALF SECONDS #
00338 M01S00285.fseex +++| ITEM LOOPCTL, RESULT, LASTNUM, ASCIITYPE, MAXL, RECYCLE, FIRSTPOS;
00339 M01S00286.fseex +++| ITEM ZERO=0;
Line S00287 Modification History |
M01 (Added by) | fseex |
M02 (Yanked) (Updated by) | @000005 |
Seq # *Modification Id* Act
----------------------------+
00340 M02S00287.@000005 ---|
00341 M01S00008.@000005 +++| ITEM COUNTER I; # LINE COUNTER #
00342 M01S00009.@000005 +++| ITEM SAMPLE I; # LINE SAMPLE RATE #
00343 M01S00010.@000005 +++| ITEM STARTTIME I; # REAL TIME CLOCK (START) #
00344 M01S00011.@000005 +++| ITEM CHECKTIME I; # REAL TIME CLOCK (CHECK) #
00345 M01S00012.@000005 +++| IF SCREENMODE OR DONTPRINT OR NOT INTERACT
00346 M01S00013.@000005 +++| OR READNAM EQ "FSEPROC" THEN
00347 M01S00014.@000005 +++| BEGIN # IF NO MESSAGE SHOULD BE SENT #
00348 M01S00015.@000005 +++| COUNTER = 0;
00349 M01S00016.@000005 +++| END
00350 M01S00017.@000005 +++| ELSE
00351 M01S00018.@000005 +++| BEGIN # MESSAGE MAY BE SENT #
00352 M01S00019.@000005 +++| COUNTER = 1;
00353 M01S00020.@000005 +++| SAMPLE = AVERAGE;
00354 M01S00021.@000005 +++| RTIME(STARTTIME);
00355 M01S00022.@000005 +++| STARTTIME = B<24,36>STARTTIME;
00356 M01S00023.@000005 +++| END
00357 M01S00288.fseex +++| REWIND(FILEFET,1);
00358 M01S00289.fseex +++| READ(FILEFET,0);
00359 M01S00290.fseex +++| FIRSTPOS=CURRENT;
00360 M01S00291.fseex +++| RESULT=0;
00361 M01S00292.fseex +++| MAXL=0;
00362 M01S00293.fseex +++| RECYCLE=0;
00363 M01S00294.fseex +++| LASTNUM=0;
Line S00295 Modification History |
M01 (Added by) | fseex |
M02 (Updated by) | ns2206 |
Seq # *Modification Id* Act
----------------------------+
00364 M02S00295.ns2206 ---| ASCIITYPE=ASCII[FILNUM];
00365 M01S00296.fseex +++| FOR LOOPCTL=LOOPCTL WHILE RESULT EQ 0 AND USRBRK EQ 0 DO
00366 M01S00297.fseex +++| BEGIN
00367 M01S00001.ns2206 +++| ASCIITYPE=ASCII[FILNUM]; # CHARACTER SET FOR FILE #
00368 M01S00298.fseex +++| LINE[0]=0;
00369 M01S00299.fseex +++| READC(FILEFET,TMPLIN,BUFWID2P1,RESULT);
00370 M01S00024.@000005 +++| IF COUNTER NQ 0 THEN
00371 M01S00025.@000005 +++| BEGIN # IF MESSAGE STILL TO ISSUE #
00372 M01S00026.@000005 +++| COUNTER = COUNTER + 1;
00373 M01S00027.@000005 +++| IF COUNTER GR SAMPLE THEN
00374 M01S00028.@000005 +++| BEGIN # IF SAMPLE SIZE REACHED #
00375 M01S00029.@000005 +++| RTIME(CHECKTIME);
00376 M01S00030.@000005 +++| CHECKTIME = B<24,36>CHECKTIME - STARTTIME;
00377 M01S00031.@000005 +++| IF CHECKTIME GR TWOANAHALF THEN
00378 M01S00032.@000005 +++| BEGIN # IF ENOUGH TIME HAS PASSED #
00379 M01S00033.@000005 +++| TTSTR("BUILDING: $");
00380 M01S00034.@000005 +++| TTLFN(READNAM);
00381 M01S00035.@000005 +++| TTLIN(" ONE MOMENT PLEASE$");
00382 M01S00036.@000005 +++| COUNTER = 0; # ONE MESSAGE IS ENOUGH #
00383 M01S00037.@000005 +++| VDTCLO(COUNTER); # FLUSH OUTPUT,NO RECALL #
00384 M01S00038.@000005 +++| END
00385 M01S00039.@000005 +++| ELSE
00386 M01S00040.@000005 +++| BEGIN # COMPUTE PROBABLE SAMPLE COUNT #
00387 M01S00041.@000005 +++| SAMPLE = (SAMPLE*TWOANAHALF)/CHECKTIME;
00388 M01S00042.@000005 +++| END
00389 M01S00043.@000005 +++| END
00390 M01S00044.@000005 +++| END
00391 M01S00300.fseex +++| IF RESULT GR 0 THEN
00392 M01S00301.fseex +++| BEGIN
00393 M01S00002.ns2206 +++| ASCIITYPE=1; # CHARACTER SET FOR EORCON #
00394 M01S00302.fseex +++| TMPLINE[0]=EORCON;
00395 M01S00303.fseex +++| FILECODE=1;
00396 M01S00304.fseex +++| READ(FILEFET,1);
00397 M01S00305.fseex +++| IF FILECODE EQ O"31" THEN RESULT=-1;
00398 M01S00306.fseex +++| ELSE IF FILECODE NQ O"1031" OR FILEIN NQ FILEOUT THEN
00399 M01S00307.fseex +++| BEGIN
00400 M01S00308.fseex +++| RESULT=0;
00401 M01S00309.fseex +++| END
00402 M01S00310.fseex +++| END
00403 M01S00311.fseex +++| IF RESULT EQ -1 THEN
00404 M01S00312.fseex +++| BEGIN
00405 M01S00003.ns2206 +++| ASCIITYPE=1; # CHARACTER SET FOR EOFCON #
00406 M01S00313.fseex +++| RESULT=0;
00407 M01S00314.fseex +++| TMPLINE[0]=EOFCON;
00408 M01S00315.fseex +++| FILECODE=1;
00409 M01S00316.fseex +++| READ(FILEFET,0);
00410 M01S00317.fseex +++| END
00411 M01S00318.fseex +++| IF RESULT EQ 0 THEN # PREPARE LINE OF TEXT #
00412 M01S00319.fseex +++| BEGIN
00413 M01S00320.fseex +++| MAXL=MAXL+1; # COUNT RELOCATION FACTOR #
00414 M01S00321.fseex +++| CONVIN(LIN,ASCIITYPE);
00415 M01S00322.fseex +++| IF NUMBERED[FILNUM] NQ 0 THEN # VERIFY/ADJUST SEQUENCE NUMBERS #
00416 M01S00323.fseex +++| BEGIN
00417 M01S00324.fseex +++| GETLNUM;
00418 M01S00325.fseex +++| IF LINENO LQ LASTNUM THEN # FILE IS NOT REALLY SEQUENCED #
00419 M01S00326.fseex +++| BEGIN
00420 M01S00327.fseex +++| NUMBERED[FILNUM]=0;
00421 M01S00328.fseex +++| CHANGED[FILNUM]=0; # TAKE BACK FLAG FOR ADJUSTMENTS #
00422 M01S00329.fseex +++| IF MAXL GR 1 THEN
00423 M01S00330.fseex +++| BEGIN
00424 M01S00331.fseex +++| REWIND(FILEFET,1);
00425 M01S00332.fseex +++| READ(FILEFET,0);
00426 M01S00333.fseex +++| POSZ(FIRSTPOS);
00427 M01S00334.fseex +++| RECYCLE=MAXL-1;
00428 M01S00335.fseex +++| MAXL=0;
00429 M01S00336.fseex +++| TEST LOOPCTL;
00430 M01S00337.fseex +++| END
00431 M01S00338.fseex +++| END
00432 M01S00339.fseex +++| ELSE # ADJUST SEQUENCING DIGITS #
00433 M01S00340.fseex +++| BEGIN
00434 M01S00341.fseex +++| IF WIDTHFOUND EQ NUMWIDTH THEN
00435 M01S00342.fseex +++| BEGIN # FIX INTERVENING BLANK #
00436 M01S00343.fseex +++| GETCHAR(LINE,NUMWIDTH,LINCTR);
00437 M01S00344.fseex +++| IF BLANKS NQ 0 AND LINCTR NQ CBLANK THEN
00438 M01S00345.fseex +++| BEGIN
00439 M01S00346.fseex +++| RSHIFT(LIN,NUMWIDTH,1);
00440 M01S00347.fseex +++| SETCHAR(LINE,NUMWIDTH,CBLANK);
00441 M01S00348.fseex +++| CHANGED[FILNUM]=1; # FLAG THAT WE ADJUSTED TEXT #
00442 M01S00349.fseex +++| END
00443 M01S00350.fseex +++| END
Line S00351 Modification History |
M01 (Added by) | fseex |
M02 (Yanked) (Updated by) | @000002 |
Seq # *Modification Id* Act
----------------------------+
00444 M02S00351.@000002 ---| IF WIDTHFOUND GR 0 AND WIDTHFOUND LS NUMWIDTH THEN
00445 M01S00001.@000002 +++| IF WIDTHFOUND GR 0 AND WIDTHFOUND LS NUMWIDTH
00446 M01S00002.@000002 +++| AND NUMMODE EQ NUMST"PREFER" THEN
00447 M01S00352.fseex +++| BEGIN # ADJUST DIGITS #
00448 M01S00353.fseex +++| CHANGED[FILNUM]=1; # FLAG THAT WE ADJUSTED TEXT #
00449 M01S00354.fseex +++| SETLNUM;
00450 M01S00355.fseex +++| GETLNUM;
00451 M01S00356.fseex +++| END
00452 M01S00357.fseex +++| END
00453 M01S00358.fseex +++| END
00454 M01S00359.fseex +++| LASTNUM=LINENO;
00455 M01S00360.fseex +++| TRIMPAD;
00456 M01S00361.fseex +++| IF RECYCLE NQ 0 THEN
00457 M01S00362.fseex +++| BEGIN
00458 M01S00363.fseex +++| ZERO = = P<LINEBUF>; # POSITION INVISIBLY #
00459 M01S00364.fseex +++| FWDZ; # POSITION INVISIBLY #
00460 M01S00365.fseex +++| ZERO = = P<LINEBUF>; # POSITION INVISIBLY #
00461 M01S00366.fseex +++| REP;
00462 M01S00367.fseex +++| RECYCLE=RECYCLE-1;
00463 M01S00368.fseex +++| END
00464 M01S00369.fseex +++| ELSE INS;
00465 M01S00370.fseex +++| END
00466 M01S00371.fseex +++| END
00467 M01S00372.fseex +++| FASTRLC(REGSTACK,MAXREG+1,CURRENT-MAXL+1,MAXL);
00468 M01S00373.fseex +++|
00469 M01S00374.fseex +++| END # OF FILEREAD #
00470 M01S00375.fseex +++|PAGE # ADDFILE CONTROLS FILEBUILD #
00471 M01S00376.fseex +++|
00472 M01S00377.fseex +++|
00473 M01S00378.fseex +++|PROC ADDFILE;
00474 M01S00379.fseex +++| BEGIN
00475 M01S00380.fseex +++|#
00476 M01S00381.fseex +++|** ADDFILE - ADD AN EXTERNAL FILE TO INTERNAL FILES.
00477 M01S00382.fseex +++|*
00478 M01S00383.fseex +++|* ENTRY FILNUM - WHICH BRACKET.
00479 M01S00384.fseex +++|* READNAM - FILE NAME.
00480 M01S00385.fseex +++|* CHARPARM - CHARACTER SET PREFERENCE OR DEFAULT.
00481 M01S00386.fseex +++|* GETPARM - PERMANENT/LOCAL PREFERENCE OR DEFAULT.
00482 M01S00387.fseex +++|* ALLASCII - DEFAULT CHARACTER SET.
00483 M01S00388.fseex +++|* SMALLFIELD - WHETHER FIELD LENGTH NOW SMALL OR LARGE.
00484 M01S00389.fseex +++|* BOTC(FILECTL) - BRACKETS FILE DIRECTORY AREA.
00485 M01S00390.fseex +++|* TOPA(AUDITCTL) - BRACKETS AUDIT TRAIL.
00486 M01S00391.fseex +++|* NUMMMODE - WHAT TO DO WITH EMPTY FILE.
00487 M01S00001.@000007 +++|* SCNFDINIT - 1 IF FILE IS INITIAL EDIT FILE,
00488 M01S00002.@000007 +++|* 0 OTHERWISE.
00489 M01S00392.fseex +++|*
00490 M01S00393.fseex +++|* EXIT GETPARM - INDICATES WHETHER GET REALLY DONE.
00491 M01S00394.fseex +++|* LOCKED[FILNUM] - SET BY FILE ATTRIBUTES.
00492 M01S00395.fseex +++|* ASCII[FILNUM] - SET BY PARAMETER.
00493 M01S00396.fseex +++|* CHANGED[FILUM] - FALSE.
00494 M01S00397.fseex +++|* NUMBERED[FILNUM] - SET BY NUMMODE AND FILE CONTENT.
00495 M01S00398.fseex +++|* BOTC, TOPA - RELOCATED, ALSO VARIOUS OTHERS.
00496 M01S00399.fseex +++|* CURRENT, CURF(FILNUM) - TOP OF FILE.
00497 M01S00400.fseex +++|* FDLF(FILNUM) - UPDATED.
00498 M01S00401.fseex +++|* TOPF(FILNUM), BOTF(FILNUM) - BRACKET THE FILE.
00499 M01S00402.fseex +++|*
00500 M01S00403.fseex +++|* USES FILEFET, DSKSIZ, UTILFET.
00501 M01S00404.fseex +++|*
00502 M01S00405.fseex +++|* CALLS VFYFILE, FLDLEN, PAUSEIO, TRIMNAME, ASSGNFILE,
00503 M01S00406.fseex +++|* MAKEFET, GET, WRITEABLE, POSZ, FORMFDL, INSY,
00504 M01S00407.fseex +++|* FILEREAD, REWIND.
00505 M01S00408.fseex +++|#
00506 M01S00409.fseex +++| ITEM NEWNAME C(7);
00507 M01S00410.fseex +++|
00508 M01S00411.fseex +++| VFYFILE(READNAM,0);
00509 M01S00412.fseex +++|
00510 M01S00413.fseex +++| IF SMALLFIELD THEN
00511 M01S00414.fseex +++| BEGIN
00512 M01S00415.fseex +++| FLDLEN(LOC(MAXADDR)+4);
00513 M01S00416.fseex +++| PAUSEIO; # DRAIN BUFFERS SO WE CAN ... #
00514 M01S00417.fseex +++| DSKSIZ=INIDSKSIZ; # ... ENLARGE BUFFERS #
00515 M01S00418.fseex +++| END
00516 M01S00419.fseex +++|
00517 M01S00420.fseex +++| NEWNAME=TRIMNAME(READNAM);
00518 M01S00421.fseex +++| IF GETPARM EQ 1 AND NOT ASSGNFILE(READNAM) THEN GETPARM=2;
00519 M01S00422.fseex +++| IF GETPARM EQ 2 THEN
00520 M01S00423.fseex +++| BEGIN
Line S00424 Modification History |
M01 (Added by) | fseex |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00521 M02S00424.@000006 ---| PF("GET",READNAM,READNAM,"RC",PFMERROR,0);
Line S00425 Modification History |
M01 (Added by) | fseex |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00522 M02S00425.@000006 ---| IF PFMERROR NQ 0 THEN
00523 M01S00002.@000006 +++| PF("GET",READNAM,READNAM,"RC",PFMERROR,"EM",PFMMSG,"EL","40",0);
00524 M01S00003.@000006 +++| IF PFMERROR EQ 0 THEN
00525 M01S00004.@000006 +++| BEGIN # IF POSSIBLE CALL TO *CPUPFM* #
00526 M01S00005.@000006 +++| IF SCREENMODE AND TABTYPHEAD[0] THEN
00527 M01S00006.@000006 +++| BEGIN # IF RUNNING WITH TYPE AHEAD #
00528 M01S00007.@000006 +++| VDTPRT$(0); # ASSURE PROMPT IS OFF #
00529 M01S00008.@000006 +++| END
00530 M01S00009.@000006 +++| END
00531 M01S00010.@000006 +++| IF PFMERROR EQ FNF THEN
00532 M01S00426.fseex +++| BEGIN
Line S00427 Modification History |
M01 (Added by) | fseex |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00533 M02S00427.281l803 ---| PF("ATTACH",READNAM,READNAM,"RC",PFMERROR,"M","W","NA","YES",0);
00534 M01S00001.281l803 +++| PF("ATTACH",READNAM,READNAM,"RC",PFMERROR,"M","W","NA","YES",
Line S00002 Modification History |
M01 (Added by) | 281l803 |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00535 M02S00002.@000006 ---| "SR","NF",0);
Line S00428 Modification History |
M01 (Added by) | fseex |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00536 M02S00428.@000006 ---| END
Line S00002 Modification History |
M01 (Yanked) (Added by) | @000003 |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00537 M02S00002.@000006 ---| ELSE
Line S00003 Modification History |
M01 (Yanked) (Added by) | @000003 |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00538 M02S00003.@000006 ---| BEGIN # IF POSSIBLE CALL TO *CPUPFM* #
Line S00004 Modification History |
M01 (Yanked) (Added by) | @000003 |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00539 M02S00004.@000006 ---| IF SCREENMODE AND TABTYPHEAD[0] THEN
Line S00005 Modification History |
M01 (Yanked) (Added by) | @000003 |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00540 M02S00005.@000006 ---| BEGIN # IF RUNNING WITH TYPE AHEAD #
Line S00006 Modification History |
M01 (Yanked) (Added by) | @000003 |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00541 M02S00006.@000006 ---| VDTPRT$(0); # ASSURE PROMPT IS OFF #
Line S00007 Modification History |
M01 (Yanked) (Added by) | @000003 |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00542 M02S00007.@000006 ---| END
00543 M01S00011.@000006 +++| "SR","NF","EM",PFMMSG,"EL","40",0);
00544 M01S00008.@000003 +++| END
00545 M01S00429.fseex +++| IF PFMERROR NQ 0 THEN
00546 M01S00430.fseex +++| BEGIN
Line S00431 Modification History |
M01 (Added by) | fseex |
M02 (Yanked) (Updated by) | @000006 |
Seq # *Modification Id* Act
----------------------------+
00547 M02S00431.@000006 ---| ERRSTRING="PFN BUSY OR NOT FOUND, USING LOCAL FILE$";
00548 M01S00012.@000006 +++| C<0,18>ERRSTRING="USING LOCAL FILE -";
00549 M01S00013.@000006 +++| C<18,40>ERRSTRING=C<0,40>PFMMSG;
00550 M01S00014.@000006 +++| C<58,1>ERRSTRING="$";
00551 M01S00432.fseex +++| END
00552 M01S00433.fseex +++| END
00553 M01S00434.fseex +++| IF GETPARM GQ 2 THEN GETPARM=0;
00554 M01S00435.fseex +++| FILENAM[FILNUM]=NEWNAME;
00555 M01S00436.fseex +++| CHANGED[FILNUM]=0;
00556 M01S00437.fseex +++| LOCKED[FILNUM]=0;
00557 M01S00003.@000007 +++| INITFILE[FILNUM]=SCNFDINIT;
00558 M01S00438.fseex +++| ASCII[FILNUM]=CHARPARM;
00559 M01S00439.fseex +++| IF CHARPARM EQ 0 AND ALLASCII THEN ASCII[FILNUM]=2;
Line S00440 Modification History |
M01 (Added by) | fseex |
M02 (Yanked) (Updated by) | @000004 |
Seq # *Modification Id* Act
----------------------------+
00560 M02S00440.@000004 ---| NUMBERED[FILNUM]=1;
00561 M01S00441.fseex +++| IF NOT WRITEABLE(READNAM) THEN LOCKED[FILNUM]=1;
00562 M01S00442.fseex +++| POSZ(BOTC(FILECTL)-1);
00563 M01S00443.fseex +++| FORMFDL(FILNUM);
00564 M01S00444.fseex +++| INSY;
00565 M01S00445.fseex +++| FDLF(FILNUM)=CURRENT;
00566 M01S00446.fseex +++|
00567 M01S00447.fseex +++| # NEW FILE BRACKET GOES BEFORE AUDIT TRAIL BRACKET #
00568 M01S00448.fseex +++| POSZ(TOPA(AUDITCTL)-1);
00569 M01S00449.fseex +++| TOPF(FILNUM)=CURRENT;
00570 M01S00450.fseex +++| MAKEFET(FILEFET,READNAM,FILEBUF,DSKSIZ);
00571 M01S00451.fseex +++| IF ASSGNFILE(READNAM) THEN
00572 M01S00452.fseex +++| BEGIN
00573 M01S00453.fseex +++| FILEREAD;
00574 M01S00454.fseex +++| REWIND(FILEFET,0);
00575 M01S00455.fseex +++| END
00576 M01S00456.fseex +++| LINE[0]=NULLIN;
00577 M01S00457.fseex +++| INSY;
00578 M01S00458.fseex +++| BOTF(FILNUM)=CURRENT;
00579 M01S00459.fseex +++|
00580 M01S00460.fseex +++| IF BOTF(FILNUM) EQ TOPF(FILNUM)+1 THEN
00581 M01S00461.fseex +++| BEGIN
00582 M01S00462.fseex +++| POSZ(TOPF(FILNUM));
00583 M01S00463.fseex +++| IF NUMMODE EQ NUMST"INTERPRET" THEN NUMBERED[FILNUM]=0;
00584 M01S00464.fseex +++| END
00585 M01S00465.fseex +++| ELSE POSZ(TOPF(FILNUM)+1);
00586 M01S00466.fseex +++| CURF(FILNUM)=CURRENT;
00587 M01S00467.fseex +++|
00588 M01S00468.fseex +++| IF SMALLFIELD THEN
00589 M01S00469.fseex +++| BEGIN
00590 M01S00470.fseex +++| PAUSEIO; # DRAIN BUFFERS SO WE CAN ... #
00591 M01S00471.fseex +++| DSKSIZ=DISKSIZE; # ... SHRINK BUFFERS BACK #
00592 M01S00472.fseex +++| FLDLEN(LOC(WORKBUF)+DSKSIZ+4);
00593 M01S00473.fseex +++| END
00594 M01S00474.fseex +++|
00595 M01S00475.fseex +++| END # OF ADDFILE #
00596 M01S00476.fseex +++|
00597 M01S00477.fseex +++|
00598 M01S00478.fseex +++|END TERM