Deck FSEEX

2 Modifications

Source

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