User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:fsefile

Deck FSEFILE

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.fsefile +++|PROC FSEFILE;
00002  M00S00002.fsefile +++|BEGIN
00003  M00S00003.fsefile +++|
00004  M00S00004.fsefile +++|
00005  M00S00005.fsefile +++|#
00006  M00S00006.fsefile +++|***       FSEFILE -- SUBROUTINES FOR FILE ACCESS.
00007  M00S00007.fsefile +++|*
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.fsefile +++|*
00011  M00S00010.fsefile +++|*         FSEFILE HAS THE ROUTINES TO TEST THE ATTRIBUTES OF
00012  M00S00011.fsefile +++|*         VARIOUS LOCAL FILES.  THIS IS THEREFORE USED ONLY FOR
00013  M00S00012.fsefile +++|*         THE SINGLE-USER VERSION OF FSE AND IS NOT PROGRAMMED
00014  M00S00013.fsefile +++|*         REENTRANTLY.  THIS MODULE IS A CANDIDATE FOR FUTURE
00015  M00S00014.fsefile +++|*         OVERLAY STRUCTURING.  IT MAY BE USED BY THE FSEMAIN MODULE
00016  M00S00015.fsefile +++|*         AND THE FILCMD MODULE ONLY.
00017  M00S00016.fsefile +++|#
00018  M00S00017.fsefile +++|
00019  M00S00018.fsefile +++|  DEF LISTCON #0#;
00020  M00S00019.fsefile +++|
00021  M00S00020.fsefile +++|CONTROL EJECT;                         # UNIVERSAL DECLARES          #
00022  M00S00021.fsefile +++|
00023  M00S00022.fsefile +++|*IFCALL SINGLE,COMFSGL
00024  M00S00023.fsefile +++|*IFCALL ONLY,COMFONL
00025  M00S00024.fsefile +++|*IFCALL MULTI,COMFMLT
00026  M00S00025.fsefile +++|*CALL COMFFSE
00027  M00S00026.fsefile +++|
00028  M00S00027.fsefile +++|                             # EXTERNALS         #
00029  M00S00028.fsefile +++|
00030  M00S00029.fsefile +++|
00031  M00S00030.fsefile +++|XDEF
00032  M00S00031.fsefile +++|  BEGIN
00033  M00S00032.fsefile +++|*CALL COMFXFL
00034  M00S00033.fsefile +++|  END
00035  M00S00034.fsefile +++|
00036  M00S00035.fsefile +++|XREF ARRAY MAXADDR;;         # KEY ADDRESSES IN BUFFER SEGMENT #
00037  M00S00036.fsefile +++|XREF ARRAY WORKBUF;;
00038  M00S00037.fsefile +++|
00039  M00S00038.fsefile +++|XREF PROC FASTRLC;
00040  M00S00039.fsefile +++|
00041  M00S00040.fsefile +++|XREF
00042  M00S00041.fsefile +++|  BEGIN
00043  M00S00042.fsefile +++|  PROC PF;
00044  M00S00043.fsefile +++|  PROC FILINFO;
00045  M00S00044.fsefile +++|  PROC READ;
00046  M00S00045.fsefile +++|  PROC READC;
00047  M00S00046.fsefile +++|  PROC REWIND;
00048  M00S00047.fsefile +++|  PROC FLDLEN;
Line S00001 Modification History
M01 (Added by) ns2377
Seq #  *Modification Id* Act 
----------------------------+
00049  M01S00001.ns2377  +++|  PROC RTIME;
00050  M01S00002.ns2377  +++|  PROC TTLIN;
00051  M01S00003.ns2377  +++|  PROC TTSTR;
00052  M01S00004.ns2377  +++|  PROC VDTCLO;
00053  M01S00005.ns2377  +++|  PROC VDTOPN;
Line S00001 Modification History
M01 (Added by) ns2249
Seq #  *Modification Id* Act 
----------------------------+
00054  M01S00001.ns2249  +++|  PROC VDTPRT$;                      # PROMPT ON/OFF #
00055  M00S00048.fsefile +++|  END
00056  M00S00049.fsefile +++|
00057  M00S00050.fsefile +++|XREF
00058  M00S00051.fsefile +++|  BEGIN
00059  M00S00052.fsefile +++|*CALL COMFXSB
00060  M00S00053.fsefile +++|*CALL COMFXSC
00061  M00S00054.fsefile +++|*CALL COMFXED
00062  M00S00055.fsefile +++|*CALL COMFXWK
00063  M00S00056.fsefile +++|  END
00064  M00S00057.fsefile +++|
00065  M00S00058.fsefile +++|                             # COMMON DATA       #
00066  M00S00059.fsefile +++|
00067  M00S00060.fsefile +++|*CALL COMFDS1
00068  M00S00061.fsefile +++|*CALL COMFVD2
00069  M00S00062.fsefile +++|*CALL COMFDS2
Line S00001 Modification History
M01 (Added by) ns2568
Seq #  *Modification Id* Act 
----------------------------+
00070  M01S00001.ns2568  +++|*CALL COMSPFM
00071  M00S00063.fsefile +++|PAGE                         # HERE WE GO        #
00072  M00S00064.fsefile +++|
00073  M00S00065.fsefile +++|
00074  M00S00066.fsefile +++|FUNC MSEQUIP(NAME) B;
00075  M00S00067.fsefile +++|  BEGIN
00076  M00S00068.fsefile +++|#
00077  M00S00069.fsefile +++|**        MSEQUIP - TEST FILE ATTRIBUTES FOR MASS STORAGE.
00078  M00S00070.fsefile +++|*
00079  M00S00071.fsefile +++|*         ENTRY  NAME - NAME OF FILE TO INSPECT.
00080  M00S00072.fsefile +++|*
00081  M00S00073.fsefile +++|*         EXIT   MSEQUIP - TRUE IF ALREADY ON MASS STORAGE OR IF
00082  M00S00074.fsefile +++|*                    ANTICIPATED TO BE ON MASS STORAGE BY DEFAULT.
00083  M00S00075.fsefile +++|*                    OTHERWISE FALSE.
00084  M00S00076.fsefile +++|*
00085  M00S00077.fsefile +++|*         CALLS  GETINFO, TRIMNAME.
00086  M00S00078.fsefile +++|*
00087  M00S00079.fsefile +++|*         NOTE   ASSUMES CORRECT DEFINITION OF DEFAULT NAMES
00088  M00S00080.fsefile +++|*                FOR INPUT AND OUTPUT FILES.
00089  M00S00081.fsefile +++|#
00090  M00S00082.fsefile +++|  ITEM NAME C(7);
Line S00001 Modification History
M01 (Added by) fsefi4
Seq #  *Modification Id* Act 
----------------------------+
00091  M01S00001.fsefi4  +++|
00092  M01S00002.fsefi4  +++|  FILINFSTAT = 0;
00093  M00S00083.fsefile +++|  IF B<0,42>NAME EQ 0 THEN
00094  M00S00084.fsefile +++|    BEGIN
00095  M00S00085.fsefile +++|    MSEQUIP=FALSE;
00096  M00S00086.fsefile +++|    RETURN;
00097  M00S00087.fsefile +++|    END
00098  M00S00088.fsefile +++|  MSEQUIP=TRUE;
00099  M00S00089.fsefile +++|  GETINFO(NAME);
00100  M00S00090.fsefile +++|  IF FILINFSTAT EQ 0 THEN
00101  M00S00091.fsefile +++|    BEGIN
00102  M00S00092.fsefile +++|    IF TRIMNAME(NAME) EQ DEFINPNAM THEN MSEQUIP=FALSE;
00103  M00S00093.fsefile +++|    IF TRIMNAME(NAME) EQ DEFOUTNAM THEN MSEQUIP=FALSE;
00104  M00S00094.fsefile +++|    END
00105  M00S00095.fsefile +++|  ELSE
00106  M00S00096.fsefile +++|    BEGIN
00107  M00S00097.fsefile +++|    IF NOT (FILINFRMS AND FILINFREAD) THEN MSEQUIP=FALSE;
00108  M00S00098.fsefile +++|    END
00109  M00S00099.fsefile +++|  END                        # OF MSEQUIP        #
00110  M00S00100.fsefile +++|
00111  M00S00101.fsefile +++|FUNC TTEQUIP(NAME) B;
00112  M00S00102.fsefile +++|  BEGIN
00113  M00S00103.fsefile +++|#
00114  M00S00104.fsefile +++|**        TTEQUIP - TEST FILE ATTRIBUTES FOR TERMINAL.
00115  M00S00105.fsefile +++|*
00116  M00S00106.fsefile +++|*         ENTRY  NAME - FILE TO TEST.
00117  M00S00107.fsefile +++|*
00118  M00S00108.fsefile +++|*         EXIT   TTEQUIP - TRUE IF FILE ALREADY ASSIGNED TO TERMINAL
00119  M00S00109.fsefile +++|*                    EQUIPMENT, OR IF ANTICIPATED TO BE SO ASSIGNED
00120  M00S00110.fsefile +++|*                    BY DEFAULT.  OTHERWISE FALSE.
00121  M00S00111.fsefile +++|*
00122  M00S00112.fsefile +++|*         CALLS  GETINFO, TRIMNAME.
00123  M00S00113.fsefile +++|*
00124  M00S00114.fsefile +++|*         NOTE   ASSUMES CORRECT DEFINITION OF DEFAULT NAMES FOR
00125  M00S00115.fsefile +++|*                INPUT AND OUTPUT FILES.
00126  M00S00116.fsefile +++|#
00127  M00S00117.fsefile +++|  ITEM NAME C(7);
00128  M00S00118.fsefile +++|  TTEQUIP=FALSE;
00129  M00S00119.fsefile +++|  IF B<0,42>NAME EQ 0 THEN RETURN;
00130  M00S00120.fsefile +++|  GETINFO(NAME);
00131  M00S00121.fsefile +++|  IF FILINFSTAT EQ 0 THEN  # NOT EXIST         #
00132  M00S00122.fsefile +++|    BEGIN
00133  M00S00123.fsefile +++|    IF TRIMNAME(NAME) EQ DEFINPNAM THEN TTEQUIP=TRUE;
00134  M00S00124.fsefile +++|    IF TRIMNAME(NAME) EQ DEFOUTNAM THEN TTEQUIP=TRUE;
00135  M00S00125.fsefile +++|    END
00136  M00S00126.fsefile +++|  ELSE                     # FILE ALREADY EXIST          #
00137  M00S00127.fsefile +++|    BEGIN
00138  M00S00128.fsefile +++|    IF FILINFTTY THEN TTEQUIP=TRUE;
00139  M00S00129.fsefile +++|    END
00140  M00S00130.fsefile +++|  END                        # OF TTEQUIP        #
00141  M00S00131.fsefile +++|
00142  M00S00132.fsefile +++|
00143  M00S00133.fsefile +++|FUNC WRITEABLE(NAME) B;
00144  M00S00134.fsefile +++|  BEGIN
00145  M00S00135.fsefile +++|#
00146  M00S00136.fsefile +++|**        WRITEABLE - TEST FILE FOR NON-READ-ONLY DISK.
00147  M00S00137.fsefile +++|*
00148  M00S00138.fsefile +++|*         ENTRY  NAME - FILE TO INSPECT.
00149  M00S00139.fsefile +++|*
00150  M00S00140.fsefile +++|*         EXIT - WRITEABLE - TRUE IF AND ONLY IF FILE IS ON
00151  M00S00141.fsefile +++|*                    MASS STORAGE AND HAS NO ACCESS RESTRICTIONS.
00152  M00S00142.fsefile +++|*
00153  M00S00143.fsefile +++|*         CALLS  MSEQUIP.
00154  M00S00144.fsefile +++|*
00155  M00S00145.fsefile +++|*         NOTE   CODING ASSUMES GETINFO WILL BE CALLED FOR THIS
00156  M00S00146.fsefile +++|*                FILE NO LATER THAN COMPLETION OF MSEQUIP.
00157  M00S00147.fsefile +++|#
00158  M00S00148.fsefile +++|  ITEM NAME C(7);
00159  M00S00149.fsefile +++|  WRITEABLE=FALSE;
00160  M00S00150.fsefile +++|  IF MSEQUIP(NAME) THEN
00161  M00S00151.fsefile +++|    BEGIN
00162  M00S00152.fsefile +++|    WRITEABLE=FILINFWRIT;
00163  M00S00153.fsefile +++|    IF FILINFSTAT EQ 0 THEN WRITEABLE=TRUE;
00164  M00S00154.fsefile +++|    END
00165  M00S00155.fsefile +++|  END                       # OF WRITEABLE      #
00166  M00S00156.fsefile +++|
00167  M00S00157.fsefile +++|
00168  M00S00158.fsefile +++|FUNC LOCALFILE(NAME) B;
00169  M00S00159.fsefile +++|  BEGIN
00170  M00S00160.fsefile +++|#
00171  M00S00161.fsefile +++|**        LOCALFILE - TEST FILE ATTRIBUTES FOR LOFT.
00172  M00S00162.fsefile +++|*
00173  M00S00163.fsefile +++|*         ENTRY  NAME - FILE TO INSPECT.
00174  M00S00164.fsefile +++|*
00175  M00S00165.fsefile +++|*         EXIT   LOCALFILE - TRUE IF AND ONLY IF FILE IS ON
00176  M00S00166.fsefile +++|*                    MASS STORAGE, HAS WRITE PERMISSION, AND IS OF
00177  M00S00167.fsefile +++|*                    LOCAL FILE TYPE.
00178  M00S00168.fsefile +++|*
00179  M00S00169.fsefile +++|*         CALLS  WRITEABLE.
00180  M00S00170.fsefile +++|*
00181  M00S00171.fsefile +++|*         NOTE   ASSUMES GETINFO IS CALLED BY WRITEABLE.
00182  M00S00172.fsefile +++|#
00183  M00S00173.fsefile +++|  ITEM NAME C(7);
00184  M00S00174.fsefile +++|  LOCALFILE=FALSE;
00185  M00S00175.fsefile +++|  IF WRITEABLE(NAME) THEN
00186  M00S00176.fsefile +++|    BEGIN
00187  M00S00177.fsefile +++|    IF FILINFFT EQ 0
00188  M00S00178.fsefile +++|      OR FILINFFT EQ 6 THEN LOCALFILE=TRUE;
00189  M00S00179.fsefile +++|    END
00190  M00S00180.fsefile +++|  END                       # OF LOCALFILE      #
00191  M00S00181.fsefile +++|
00192  M00S00182.fsefile +++|
00193  M00S00183.fsefile +++|PROC GETINFO(NAME);
00194  M00S00184.fsefile +++|  BEGIN
00195  M00S00185.fsefile +++|#
00196  M00S00186.fsefile +++|**        GETINFO - INTERFACE TO FILINFO MACRO.
00197  M00S00187.fsefile +++|*
00198  M00S00188.fsefile +++|*         ENTRY  NAME - FILE TO PROCESS.
00199  M00S00189.fsefile +++|*
00200  M00S00190.fsefile +++|*         EXIT   FILINFPARMS ARRAY IS FILLED IN.
00201  M00S00191.fsefile +++|*
00202  M00S00192.fsefile +++|*         CALLS  TRIMNAME, FILINFO.
00203  M00S00193.fsefile +++|#
00204  M00S00194.fsefile +++|  ITEM NAME C(7), NEWNAME C(7);
00205  M00S00195.fsefile +++|  NEWNAME=TRIMNAME(NAME);
00206  M00S00196.fsefile +++|  FILINFNAME=NEWNAME;
00207  M00S00197.fsefile +++|  FILINFO(FILINFPARMS);
00208  M00S00198.fsefile +++|  END                         # OF GETINFO        #
00209  M00S00199.fsefile +++|
00210  M00S00200.fsefile +++|
00211  M00S00201.fsefile +++|FUNC ASSGNFILE(NAME) B;
00212  M00S00202.fsefile +++|  BEGIN
00213  M00S00203.fsefile +++|#
00214  M00S00204.fsefile +++|**        ASSGNFILE - TEST FILE FOR FNT ASSIGNMENT.
00215  M00S00205.fsefile +++|*
00216  M00S00206.fsefile +++|*         ENTRY  NAME - FILE TO INSPECT.
00217  M00S00207.fsefile +++|*
00218  M00S00208.fsefile +++|*         EXIT   ASSGNFILE - TRUE IF AND ONLY IF THIS JOB HAS
00219  M00S00209.fsefile +++|*                    AN FNT FOR THE FILE.
00220  M00S00210.fsefile +++|*
00221  M00S00211.fsefile +++|*         CALLS  GETINFO.
00222  M00S00212.fsefile +++|#
00223  M00S00213.fsefile +++|  ITEM NAME C(7);
00224  M00S00214.fsefile +++|  ASSGNFILE=FALSE;
00225  M00S00215.fsefile +++|  IF B<0,42>NAME EQ 0 THEN RETURN;
00226  M00S00216.fsefile +++|  GETINFO(NAME);
00227  M00S00217.fsefile +++|  IF FILINFSTAT NQ 0 THEN ASSGNFILE=TRUE;
00228  M00S00218.fsefile +++|  END                         # OF ASSGNFILE      #
00229  M00S00219.fsefile +++|
00230  M00S00220.fsefile +++|
00231  M00S00221.fsefile +++|PROC VFYFILE(NAME,MODE);
00232  M00S00222.fsefile +++|  BEGIN
00233  M00S00223.fsefile +++|#
00234  M00S00224.fsefile +++|**        VFYFILE - VERIFY FILE AS LEGAL TO BE EDITED.
00235  M00S00225.fsefile +++|*
00236  M00S00226.fsefile +++|*         ENTRY  NAME - FILE TO INSPECT.
00237  M00S00227.fsefile +++|*                MODE - POSITIVE IMPLIES USE ERRJUMP FOR FAILURES,
00238  M00S00228.fsefile +++|*                    NEGATIVE IMPLIES ABORT THE JOB STEP VIA MORTAL.
00239  M00S00229.fsefile +++|*
00240  M00S00230.fsefile +++|*         EXIT   TO CALLER IF FILE IS LEGAL, OTHERWISE TO
00241  M00S00231.fsefile +++|*                SPECIFIED ERROR ROUTINE WITHOUT RETURN.
00242  M00S00232.fsefile +++|*
00243  M00S00233.fsefile +++|*         CALLS  ERRJUMP, MORTAL, ERROR(INTERNAL), COMPARE(INTERNAL).
00244  M00S00234.fsefile +++|#
00245  M00S00235.fsefile +++|  ITEM NAME C(7), MODE I;
00246  M00S00236.fsefile +++|
00247  M00S00237.fsefile +++|  PROC ERROR(STR);
00248  M00S00238.fsefile +++|    BEGIN
00249  M00S00239.fsefile +++|    ITEM STR C(40);
00250  M00S00240.fsefile +++|    IF MODE GQ 0 THEN ERRJUMP(STR);
00251  M00S00241.fsefile +++|    MORTAL(STR);
00252  M00S00242.fsefile +++|    END
00253  M00S00243.fsefile +++|
00254  M00S00244.fsefile +++|  PROC COMPARE(PARM);
00255  M00S00245.fsefile +++|    BEGIN
00256  M00S00246.fsefile +++|    ITEM PARM C(7), NAME1 C(7), NAME2 C(7);
00257  M00S00247.fsefile +++|    NAME1=TRIMNAME(NAME);
00258  M00S00248.fsefile +++|    NAME2=TRIMNAME(PARM);
00259  M00S00249.fsefile +++|    IF NAME1 EQ NAME2 THEN ERROR("RESERVED FILE$");
00260  M00S00250.fsefile +++|    END
00261  M00S00251.fsefile +++|
00262  M00S00252.fsefile +++|  COMPARE(INPTNAM);
00263  M00S00253.fsefile +++|  COMPARE(OUTPNAM);
00264  M00S00254.fsefile +++|  COMPARE(WORKNAM);
00265  M00S00255.fsefile +++|  COMPARE("ZZZMOVE");
Line S00256 Modification History
M01 (Removed by) fsefi4
Seq #  *Modification Id* Act 
----------------------------+
00266  M01S00256.fsefi4  ---|  IF NOT MSEQUIP(NAME) THEN ERROR("FILE MUST BE ON DISK$");
Line S00003 Modification History
M01 (Added by) fsefi4
Seq #  *Modification Id* Act 
----------------------------+
00267  M01S00003.fsefi4  +++|  IF NOT MSEQUIP(NAME) THEN
00268  M01S00004.fsefi4  +++|    BEGIN
00269  M01S00005.fsefi4  +++|    IF FILINFSTAT NQ 0 AND FILINFRMS THEN
00270  M01S00006.fsefi4  +++|      BEGIN                          # IF FILE HAS NO READ PERMISSION #
00271  M01S00007.fsefi4  +++|      ERROR("FILE DOES NOT HAVE READ PERMISSION$");
00272  M01S00008.fsefi4  +++|      END
00273  M01S00009.fsefi4  +++|    ELSE
00274  M01S00010.fsefi4  +++|      BEGIN                          # IF FILE IS NOT ON DISK #
00275  M01S00011.fsefi4  +++|      ERROR("FILE MUST BE ON DISK$");
00276  M01S00012.fsefi4  +++|      END
00277  M01S00013.fsefi4  +++|    END
00278  M00S00257.fsefile +++|  END                         # OF VFYFILE        #
00279  M00S00258.fsefile +++|PAGE                         # FILE READ SUBROUTINE        #
00280  M00S00259.fsefile +++|
00281  M00S00260.fsefile +++|
00282  M00S00261.fsefile +++|PROC FILEREAD;
00283  M00S00262.fsefile +++|  BEGIN
00284  M00S00263.fsefile +++|#
00285  M00S00264.fsefile +++|**        FILEREAD - READ A LOCAL FILE INTO FILE IMAGE BRACKET.
00286  M00S00265.fsefile +++|*
00287  M00S00266.fsefile +++|*         NOTE THAT TO SAVE THE CPU OVERHEAD OF RELOCATING THE
00288  M00S00267.fsefile +++|*         POINTER STACKS FOR EVERY INSERTION, WE CALL WORKIO
00289  M00S00268.fsefile +++|*         DIRECTLY, THEN WE CALL RELOCATE TO CORRECT FOR BYPASSING
00290  M00S00269.fsefile +++|*         THE "INSY" INTERFACE.
00291  M00S00270.fsefile +++|*
00292  M00S00271.fsefile +++|*         NOTE THAT THE "USRBRK" FLAG IS CONTINUALLY CHECKED
00293  M00S00272.fsefile +++|*         TO DETECT AN EXTERNAL INTERRUPT.
00294  M00S00273.fsefile +++|*
00295  M00S00274.fsefile +++|*         ENTRY  FILNUM - WHICH BRACKET.
00296  M00S00275.fsefile +++|*                FILEFET - ALREADY INITIALIZED.
00297  M00S00276.fsefile +++|*                ASCII[FILNUM] - CHARACTER SET.
00298  M00S00277.fsefile +++|*
00299  M00S00278.fsefile +++|*         EXIT   NUMBERED[FILNUM] - WHETHER FILE REALLY NUMBERED.
00300  M00S00279.fsefile +++|*                FILEFET - AT EOI, OR INDETERINATE IF USER BREAK.
00301  M00S00280.fsefile +++|*
00302  M00S00281.fsefile +++|*         CALLS  READ, READC, CONVIN, GETLNUM, TRIMPAD, INS, FASTRLC.
00303  M00S00282.fsefile +++|*
00304  M00S00283.fsefile +++|*         USES   WIDTHFOUND.
00305  M00S00284.fsefile +++|#
Line S00006 Modification History
M01 (Added by) ns2377
Seq #  *Modification Id* Act 
----------------------------+
00306  M01S00006.ns2377  +++|  DEF  AVERAGE    #500#;             # AVERAGE FILE SIZE #
00307  M01S00007.ns2377  +++|  DEF  TWOANAHALF #2500#;            # TWO AND A HALF SECONDS #
00308  M00S00285.fsefile +++|  ITEM LOOPCTL, RESULT, LASTNUM, ASCIITYPE, MAXL, RECYCLE, FIRSTPOS;
00309  M00S00286.fsefile +++|  ITEM ZERO=0;
Line S00287 Modification History
M01 (Removed by) ns2377
Seq #  *Modification Id* Act 
----------------------------+
00310  M01S00287.ns2377  ---|
Line S00008 Modification History
M01 (Added by) ns2377
Seq #  *Modification Id* Act 
----------------------------+
00311  M01S00008.ns2377  +++|  ITEM COUNTER    I;                 # LINE COUNTER #
00312  M01S00009.ns2377  +++|  ITEM SAMPLE     I;                 # LINE SAMPLE RATE #
00313  M01S00010.ns2377  +++|  ITEM STARTTIME  I;                 # REAL TIME CLOCK (START) #
00314  M01S00011.ns2377  +++|  ITEM CHECKTIME  I;                 # REAL TIME CLOCK (CHECK) #
00315  M01S00012.ns2377  +++|  IF SCREENMODE OR DONTPRINT OR NOT INTERACT
00316  M01S00013.ns2377  +++|    OR READNAM EQ "FSEPROC" THEN
00317  M01S00014.ns2377  +++|    BEGIN                            # IF NO MESSAGE SHOULD BE SENT #
00318  M01S00015.ns2377  +++|    COUNTER = 0;
00319  M01S00016.ns2377  +++|    END
00320  M01S00017.ns2377  +++|  ELSE
00321  M01S00018.ns2377  +++|    BEGIN                            # MESSAGE MAY BE SENT #
00322  M01S00019.ns2377  +++|    COUNTER = 1;
00323  M01S00020.ns2377  +++|    SAMPLE = AVERAGE;
00324  M01S00021.ns2377  +++|    RTIME(STARTTIME);
00325  M01S00022.ns2377  +++|    STARTTIME = B<24,36>STARTTIME;
00326  M01S00023.ns2377  +++|    END
00327  M00S00288.fsefile +++|  REWIND(FILEFET,1);
00328  M00S00289.fsefile +++|  READ(FILEFET,0);
00329  M00S00290.fsefile +++|  FIRSTPOS=CURRENT;
00330  M00S00291.fsefile +++|  RESULT=0;
00331  M00S00292.fsefile +++|  MAXL=0;
00332  M00S00293.fsefile +++|  RECYCLE=0;
00333  M00S00294.fsefile +++|  LASTNUM=0;
Line S00295 Modification History
M01 (Removed by) fsefi1
Seq #  *Modification Id* Act 
----------------------------+
00334  M01S00295.fsefi1  ---|  ASCIITYPE=ASCII[FILNUM];
00335  M00S00296.fsefile ---|  FOR LOOPCTL=LOOPCTL WHILE RESULT EQ 0 AND USRBRK EQ 0 DO
00336  M00S00297.fsefile ---|    BEGIN
Line S00001 Modification History
M01 (Added by) fsefi1
Seq #  *Modification Id* Act 
----------------------------+
00337  M01S00001.fsefi1  +++|    ASCIITYPE=ASCII[FILNUM];         # CHARACTER SET FOR FILE #
00338  M00S00298.fsefile +++|    LINE[0]=0;
00339  M00S00299.fsefile +++|    READC(FILEFET,TMPLIN,BUFWID2P1,RESULT);
Line S00024 Modification History
M01 (Added by) ns2377
Seq #  *Modification Id* Act 
----------------------------+
00340  M01S00024.ns2377  +++|    IF COUNTER NQ 0 THEN
00341  M01S00025.ns2377  +++|      BEGIN                          # IF MESSAGE STILL TO ISSUE #
00342  M01S00026.ns2377  +++|      COUNTER = COUNTER + 1;
00343  M01S00027.ns2377  +++|      IF COUNTER GR SAMPLE THEN
00344  M01S00028.ns2377  +++|        BEGIN                        # IF SAMPLE SIZE REACHED #
00345  M01S00029.ns2377  +++|        RTIME(CHECKTIME);
00346  M01S00030.ns2377  +++|        CHECKTIME = B<24,36>CHECKTIME - STARTTIME;
00347  M01S00031.ns2377  +++|        IF CHECKTIME GR TWOANAHALF THEN
00348  M01S00032.ns2377  +++|          BEGIN                      # IF ENOUGH TIME HAS PASSED #
00349  M01S00033.ns2377  +++|          TTSTR("BUILDING: $");
00350  M01S00034.ns2377  +++|          TTLFN(READNAM);
00351  M01S00035.ns2377  +++|          TTLIN(" ONE MOMENT PLEASE$");
00352  M01S00036.ns2377  +++|          COUNTER = 0;               # ONE MESSAGE IS ENOUGH #
00353  M01S00037.ns2377  +++|          VDTCLO(COUNTER);           # FLUSH OUTPUT,NO RECALL #
00354  M01S00038.ns2377  +++|          END
00355  M01S00039.ns2377  +++|        ELSE
00356  M01S00040.ns2377  +++|          BEGIN                      # COMPUTE PROBABLE SAMPLE COUNT #
00357  M01S00041.ns2377  +++|          SAMPLE = (SAMPLE*TWOANAHALF)/CHECKTIME;
00358  M01S00042.ns2377  +++|          END
00359  M01S00043.ns2377  +++|        END
00360  M01S00044.ns2377  +++|      END
00361  M00S00300.fsefile +++|    IF RESULT GR 0 THEN
00362  M00S00301.fsefile +++|      BEGIN
Line S00002 Modification History
M01 (Added by) fsefi1
Seq #  *Modification Id* Act 
----------------------------+
00363  M01S00002.fsefi1  +++|      ASCIITYPE=1;                   # CHARACTER SET FOR EORCON #
00364  M00S00302.fsefile +++|      TMPLINE[0]=EORCON;
00365  M00S00303.fsefile +++|      FILECODE=1;
00366  M00S00304.fsefile +++|      READ(FILEFET,1);
00367  M00S00305.fsefile +++|      IF FILECODE EQ O"31" THEN RESULT=-1;
00368  M00S00306.fsefile +++|      ELSE IF FILECODE NQ O"1031" OR FILEIN NQ FILEOUT THEN
00369  M00S00307.fsefile +++|        BEGIN
00370  M00S00308.fsefile +++|        RESULT=0;
00371  M00S00309.fsefile +++|        END
00372  M00S00310.fsefile +++|      END
00373  M00S00311.fsefile +++|    IF RESULT EQ -1 THEN
00374  M00S00312.fsefile +++|      BEGIN
00375  M01S00003.fsefi1  +++|      ASCIITYPE=1;                   # CHARACTER SET FOR EOFCON #
00376  M00S00313.fsefile +++|      RESULT=0;
00377  M00S00314.fsefile +++|      TMPLINE[0]=EOFCON;
00378  M00S00315.fsefile +++|      FILECODE=1;
00379  M00S00316.fsefile +++|      READ(FILEFET,0);
00380  M00S00317.fsefile +++|      END
00381  M00S00318.fsefile +++|    IF RESULT EQ 0 THEN              # PREPARE LINE OF TEXT #
00382  M00S00319.fsefile +++|      BEGIN
00383  M00S00320.fsefile +++|      MAXL=MAXL+1;                   # COUNT RELOCATION FACTOR     #
00384  M00S00321.fsefile +++|      CONVIN(LIN,ASCIITYPE);
00385  M00S00322.fsefile +++|      IF NUMBERED[FILNUM] NQ 0 THEN  # VERIFY/ADJUST SEQUENCE NUMBERS #
00386  M00S00323.fsefile +++|        BEGIN
00387  M00S00324.fsefile +++|        GETLNUM;
00388  M00S00325.fsefile +++|        IF LINENO LQ LASTNUM THEN    # FILE IS NOT REALLY SEQUENCED #
00389  M00S00326.fsefile +++|          BEGIN
00390  M00S00327.fsefile +++|          NUMBERED[FILNUM]=0;
00391  M00S00328.fsefile +++|          CHANGED[FILNUM]=0;         # TAKE BACK FLAG FOR ADJUSTMENTS #
00392  M00S00329.fsefile +++|          IF MAXL GR 1 THEN
00393  M00S00330.fsefile +++|            BEGIN
00394  M00S00331.fsefile +++|            REWIND(FILEFET,1);
00395  M00S00332.fsefile +++|            READ(FILEFET,0);
00396  M00S00333.fsefile +++|            POSZ(FIRSTPOS);
00397  M00S00334.fsefile +++|            RECYCLE=MAXL-1;
00398  M00S00335.fsefile +++|            MAXL=0;
00399  M00S00336.fsefile +++|            TEST LOOPCTL;
00400  M00S00337.fsefile +++|            END
00401  M00S00338.fsefile +++|          END
00402  M00S00339.fsefile +++|        ELSE                         # ADJUST SEQUENCING DIGITS #
00403  M00S00340.fsefile +++|          BEGIN
00404  M00S00341.fsefile +++|          IF WIDTHFOUND EQ NUMWIDTH THEN
00405  M00S00342.fsefile +++|            BEGIN                    # FIX INTERVENING BLANK #
00406  M00S00343.fsefile +++|            GETCHAR(LINE,NUMWIDTH,LINCTR);
00407  M00S00344.fsefile +++|            IF BLANKS NQ 0 AND LINCTR NQ CBLANK THEN
00408  M00S00345.fsefile +++|              BEGIN
00409  M00S00346.fsefile +++|              RSHIFT(LIN,NUMWIDTH,1);
00410  M00S00347.fsefile +++|              SETCHAR(LINE,NUMWIDTH,CBLANK);
00411  M00S00348.fsefile +++|              CHANGED[FILNUM]=1;     # FLAG THAT WE ADJUSTED TEXT #
00412  M00S00349.fsefile +++|              END
00413  M00S00350.fsefile +++|            END
Line S00351 Modification History
M01 (Removed by) fsefi2
Seq #  *Modification Id* Act 
----------------------------+
00414  M01S00351.fsefi2  ---|          IF WIDTHFOUND GR 0 AND WIDTHFOUND LS NUMWIDTH THEN
Line S00001 Modification History
M01 (Added by) fsefi2
Seq #  *Modification Id* Act 
----------------------------+
00415  M01S00001.fsefi2  +++|          IF WIDTHFOUND GR 0 AND WIDTHFOUND LS NUMWIDTH
00416  M01S00002.fsefi2  +++|            AND NUMMODE EQ NUMST"PREFER" THEN
00417  M00S00352.fsefile +++|            BEGIN                    # ADJUST DIGITS #
00418  M00S00353.fsefile +++|            CHANGED[FILNUM]=1;       # FLAG THAT WE ADJUSTED TEXT #
00419  M00S00354.fsefile +++|            SETLNUM;
00420  M00S00355.fsefile +++|            GETLNUM;
00421  M00S00356.fsefile +++|            END
00422  M00S00357.fsefile +++|          END
00423  M00S00358.fsefile +++|        END
00424  M00S00359.fsefile +++|      LASTNUM=LINENO;
00425  M00S00360.fsefile +++|      TRIMPAD;
00426  M00S00361.fsefile +++|      IF RECYCLE NQ 0 THEN
00427  M00S00362.fsefile +++|        BEGIN
00428  M00S00363.fsefile +++|        ZERO = = P<LINEBUF>;         # POSITION INVISIBLY #
00429  M00S00364.fsefile +++|        FWDZ;                        # POSITION INVISIBLY #
00430  M00S00365.fsefile +++|        ZERO = = P<LINEBUF>;         # POSITION INVISIBLY #
00431  M00S00366.fsefile +++|        REP;
00432  M00S00367.fsefile +++|        RECYCLE=RECYCLE-1;
00433  M00S00368.fsefile +++|        END
00434  M00S00369.fsefile +++|      ELSE INS;
00435  M00S00370.fsefile +++|      END
00436  M00S00371.fsefile +++|    END
00437  M00S00372.fsefile +++|  FASTRLC(REGSTACK,MAXREG+1,CURRENT-MAXL+1,MAXL);
00438  M00S00373.fsefile +++|
00439  M00S00374.fsefile +++|  END                          # OF FILEREAD       #
00440  M00S00375.fsefile +++|PAGE                         # ADDFILE CONTROLS FILEBUILD  #
00441  M00S00376.fsefile +++|
00442  M00S00377.fsefile +++|
00443  M00S00378.fsefile +++|PROC ADDFILE;
00444  M00S00379.fsefile +++|  BEGIN
00445  M00S00380.fsefile +++|#
00446  M00S00381.fsefile +++|**        ADDFILE - ADD AN EXTERNAL FILE TO INTERNAL FILES.
00447  M00S00382.fsefile +++|*
00448  M00S00383.fsefile +++|*         ENTRY  FILNUM - WHICH BRACKET.
00449  M00S00384.fsefile +++|*                READNAM - FILE NAME.
00450  M00S00385.fsefile +++|*                CHARPARM - CHARACTER SET PREFERENCE OR DEFAULT.
00451  M00S00386.fsefile +++|*                GETPARM - PERMANENT/LOCAL PREFERENCE OR DEFAULT.
00452  M00S00387.fsefile +++|*                ALLASCII - DEFAULT CHARACTER SET.
00453  M00S00388.fsefile +++|*                SMALLFIELD - WHETHER FIELD LENGTH NOW SMALL OR LARGE.
00454  M00S00389.fsefile +++|*                BOTC(FILECTL) - BRACKETS FILE DIRECTORY AREA.
00455  M00S00390.fsefile +++|*                TOPA(AUDITCTL) - BRACKETS AUDIT TRAIL.
00456  M00S00391.fsefile +++|*                NUMMMODE - WHAT TO DO WITH EMPTY FILE.
Line S00001 Modification History
M01 (Added by) ns2607
Seq #  *Modification Id* Act 
----------------------------+
00457  M01S00001.ns2607  +++|*                SCNFDINIT - 1 IF FILE IS INITIAL EDIT FILE,
00458  M01S00002.ns2607  +++|*                            0 OTHERWISE.
00459  M00S00392.fsefile +++|*
00460  M00S00393.fsefile +++|*         EXIT   GETPARM - INDICATES WHETHER GET REALLY DONE.
00461  M00S00394.fsefile +++|*                LOCKED[FILNUM] - SET BY FILE ATTRIBUTES.
00462  M00S00395.fsefile +++|*                ASCII[FILNUM] - SET BY PARAMETER.
00463  M00S00396.fsefile +++|*                CHANGED[FILUM] - FALSE.
00464  M00S00397.fsefile +++|*                NUMBERED[FILNUM] - SET BY NUMMODE AND FILE CONTENT.
00465  M00S00398.fsefile +++|*                BOTC, TOPA - RELOCATED, ALSO VARIOUS OTHERS.
00466  M00S00399.fsefile +++|*                CURRENT, CURF(FILNUM) - TOP OF FILE.
00467  M00S00400.fsefile +++|*                FDLF(FILNUM) - UPDATED.
00468  M00S00401.fsefile +++|*                TOPF(FILNUM), BOTF(FILNUM) - BRACKET THE FILE.
00469  M00S00402.fsefile +++|*
00470  M00S00403.fsefile +++|*         USES   FILEFET, DSKSIZ, UTILFET.
00471  M00S00404.fsefile +++|*
00472  M00S00405.fsefile +++|*         CALLS  VFYFILE, FLDLEN, PAUSEIO, TRIMNAME, ASSGNFILE,
00473  M00S00406.fsefile +++|*                MAKEFET, GET, WRITEABLE, POSZ, FORMFDL, INSY,
00474  M00S00407.fsefile +++|*                FILEREAD, REWIND.
00475  M00S00408.fsefile +++|#
00476  M00S00409.fsefile +++|  ITEM NEWNAME C(7);
00477  M00S00410.fsefile +++|
00478  M00S00411.fsefile +++|  VFYFILE(READNAM,0);
00479  M00S00412.fsefile +++|
00480  M00S00413.fsefile +++|  IF SMALLFIELD THEN
00481  M00S00414.fsefile +++|    BEGIN
00482  M00S00415.fsefile +++|    FLDLEN(LOC(MAXADDR)+4);
00483  M00S00416.fsefile +++|    PAUSEIO;                   # DRAIN BUFFERS SO WE CAN ... #
00484  M00S00417.fsefile +++|    DSKSIZ=INIDSKSIZ;          # ... ENLARGE BUFFERS         #
00485  M00S00418.fsefile +++|    END
00486  M00S00419.fsefile +++|
00487  M00S00420.fsefile +++|  NEWNAME=TRIMNAME(READNAM);
00488  M00S00421.fsefile +++|  IF GETPARM EQ 1 AND NOT ASSGNFILE(READNAM) THEN GETPARM=2;
00489  M00S00422.fsefile +++|  IF GETPARM EQ 2 THEN
00490  M00S00423.fsefile +++|    BEGIN
Line S00424 Modification History
M01 (Removed by) ns2568
Seq #  *Modification Id* Act 
----------------------------+
00491  M01S00424.ns2568  ---|    PF("GET",READNAM,READNAM,"RC",PFMERROR,0);
00492  M01S00425.ns2568  ---|    IF PFMERROR NQ 0 THEN
Line S00002 Modification History
M01 (Added by) ns2568
Seq #  *Modification Id* Act 
----------------------------+
00493  M01S00002.ns2568  +++|    PF("GET",READNAM,READNAM,"RC",PFMERROR,"EM",PFMMSG,"EL","40",0);
00494  M01S00003.ns2568  +++|    IF PFMERROR EQ 0 THEN
00495  M01S00004.ns2568  +++|      BEGIN                          # IF POSSIBLE CALL TO *CPUPFM* #
00496  M01S00005.ns2568  +++|      IF SCREENMODE AND TABTYPHEAD[0] THEN
00497  M01S00006.ns2568  +++|        BEGIN                        # IF RUNNING WITH TYPE AHEAD #
00498  M01S00007.ns2568  +++|        VDTPRT$(0);                  # ASSURE PROMPT IS OFF #
00499  M01S00008.ns2568  +++|        END
00500  M01S00009.ns2568  +++|      END
00501  M01S00010.ns2568  +++|    IF PFMERROR EQ FNF THEN
00502  M00S00426.fsefile +++|      BEGIN
Line S00427 Modification History
M01 (Removed by) ns2189
Seq #  *Modification Id* Act 
----------------------------+
00503  M01S00427.ns2189  ---|      PF("ATTACH",READNAM,READNAM,"RC",PFMERROR,"M","W","NA","YES",0);
Line S00001 Modification History
M01 (Added by) ns2189
Seq #  *Modification Id* Act 
----------------------------+
00504  M01S00001.ns2189  +++|      PF("ATTACH",READNAM,READNAM,"RC",PFMERROR,"M","W","NA","YES",
Line S00002 Modification History
M01 (Added by) ns2189
M02 (Removed by) ns2568
Seq #  *Modification Id* Act 
----------------------------+
00505  M02S00002.ns2568  ---|        "SR","NF",0);
Line S00428 Modification History
M01 (Removed by) ns2568
Seq #  *Modification Id* Act 
----------------------------+
00506  M01S00428.ns2568  ---|      END
Line S00002 Modification History
M01 (Added by) ns2249
M02 (Removed by) ns2568
Seq #  *Modification Id* Act 
----------------------------+
00507  M02S00002.ns2568  ---|    ELSE
00508  M02S00003.ns2568  ---|      BEGIN                          # IF POSSIBLE CALL TO *CPUPFM* #
00509  M02S00004.ns2568  ---|      IF SCREENMODE AND TABTYPHEAD[0] THEN
00510  M02S00005.ns2568  ---|        BEGIN                        # IF RUNNING WITH TYPE AHEAD #
00511  M02S00006.ns2568  ---|        VDTPRT$(0);                  # ASSURE PROMPT IS OFF #
00512  M02S00007.ns2568  ---|        END
Line S00011 Modification History
M01 (Added by) ns2568
Seq #  *Modification Id* Act 
----------------------------+
00513  M01S00011.ns2568  +++|        "SR","NF","EM",PFMMSG,"EL","40",0);
Line S00008 Modification History
M01 (Added by) ns2249
Seq #  *Modification Id* Act 
----------------------------+
00514  M01S00008.ns2249  +++|      END
00515  M00S00429.fsefile +++|    IF PFMERROR NQ 0 THEN
00516  M00S00430.fsefile +++|      BEGIN
Line S00431 Modification History
M01 (Removed by) ns2568
Seq #  *Modification Id* Act 
----------------------------+
00517  M01S00431.ns2568  ---|      ERRSTRING="PFN BUSY OR NOT FOUND, USING LOCAL FILE$";
Line S00012 Modification History
M01 (Added by) ns2568
Seq #  *Modification Id* Act 
----------------------------+
00518  M01S00012.ns2568  +++|      C<0,18>ERRSTRING="USING LOCAL FILE -";
00519  M01S00013.ns2568  +++|      C<18,40>ERRSTRING=C<0,40>PFMMSG;
00520  M01S00014.ns2568  +++|      C<58,1>ERRSTRING="$";
00521  M00S00432.fsefile +++|      END
00522  M00S00433.fsefile +++|    END
00523  M00S00434.fsefile +++|  IF GETPARM GQ 2 THEN GETPARM=0;
00524  M00S00435.fsefile +++|  FILENAM[FILNUM]=NEWNAME;
00525  M00S00436.fsefile +++|  CHANGED[FILNUM]=0;
00526  M00S00437.fsefile +++|  LOCKED[FILNUM]=0;
Line S00003 Modification History
M01 (Added by) ns2607
Seq #  *Modification Id* Act 
----------------------------+
00527  M01S00003.ns2607  +++|  INITFILE[FILNUM]=SCNFDINIT;
00528  M00S00438.fsefile +++|  ASCII[FILNUM]=CHARPARM;
00529  M00S00439.fsefile +++|  IF CHARPARM EQ 0 AND ALLASCII THEN ASCII[FILNUM]=2;
Line S00440 Modification History
M01 (Removed by) fsefi3
Seq #  *Modification Id* Act 
----------------------------+
00530  M01S00440.fsefi3  ---|  NUMBERED[FILNUM]=1;
00531  M00S00441.fsefile ---|  IF NOT WRITEABLE(READNAM) THEN LOCKED[FILNUM]=1;
00532  M00S00442.fsefile ---|  POSZ(BOTC(FILECTL)-1);
00533  M00S00443.fsefile ---|  FORMFDL(FILNUM);
00534  M00S00444.fsefile ---|  INSY;
00535  M00S00445.fsefile ---|  FDLF(FILNUM)=CURRENT;
00536  M00S00446.fsefile ---|
00537  M00S00447.fsefile ---|  # NEW FILE BRACKET GOES BEFORE AUDIT TRAIL BRACKET #
00538  M00S00448.fsefile ---|  POSZ(TOPA(AUDITCTL)-1);
00539  M00S00449.fsefile ---|  TOPF(FILNUM)=CURRENT;
00540  M00S00450.fsefile ---|  MAKEFET(FILEFET,READNAM,FILEBUF,DSKSIZ);
00541  M00S00451.fsefile ---|  IF ASSGNFILE(READNAM) THEN
00542  M00S00452.fsefile ---|    BEGIN
00543  M00S00453.fsefile ---|    FILEREAD;
00544  M00S00454.fsefile ---|    REWIND(FILEFET,0);
00545  M00S00455.fsefile ---|    END
00546  M00S00456.fsefile ---|  LINE[0]=NULLIN;
00547  M00S00457.fsefile ---|  INSY;
00548  M00S00458.fsefile ---|  BOTF(FILNUM)=CURRENT;
00549  M00S00459.fsefile ---|
00550  M00S00460.fsefile ---|  IF BOTF(FILNUM) EQ TOPF(FILNUM)+1 THEN
00551  M00S00461.fsefile ---|    BEGIN
00552  M00S00462.fsefile ---|    POSZ(TOPF(FILNUM));
00553  M00S00463.fsefile ---|    IF NUMMODE EQ NUMST"INTERPRET" THEN NUMBERED[FILNUM]=0;
00554  M00S00464.fsefile ---|    END
00555  M00S00465.fsefile ---|  ELSE POSZ(TOPF(FILNUM)+1);
00556  M00S00466.fsefile ---|  CURF(FILNUM)=CURRENT;
00557  M00S00467.fsefile ---|
00558  M00S00468.fsefile ---|  IF SMALLFIELD THEN
00559  M00S00469.fsefile ---|    BEGIN
00560  M00S00470.fsefile ---|    PAUSEIO;                   # DRAIN BUFFERS SO WE CAN ... #
00561  M00S00471.fsefile ---|    DSKSIZ=DISKSIZE;           # ... SHRINK BUFFERS BACK     #
00562  M00S00472.fsefile ---|    FLDLEN(LOC(WORKBUF)+DSKSIZ+4);
00563  M00S00473.fsefile ---|    END
00564  M00S00474.fsefile ---|
00565  M00S00475.fsefile ---|  END                         # OF ADDFILE     #
00566  M00S00476.fsefile ---|
00567  M00S00477.fsefile ---|
00568  M00S00478.fsefile ---|END TERM
cdc/nos2.source/opl.opl871/deck/fsefile.txt ยท Last modified: (external edit)