User Tools

Site Tools


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

Deck FSECMDS

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.fsecmds +++|PROC FSECMDS;
00002  M00S00002.fsecmds +++|  BEGIN
00003  M00S00003.fsecmds +++|
00004  M00S00004.fsecmds +++|
00005  M00S00005.fsecmds +++|#
00006  M00S00006.fsecmds +++|***       FSECMDS -- SUPPLEMENTARY COMMANDS.
00007  M00S00007.fsecmds +++|*
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.fsecmds +++|*
00011  M00S00010.fsecmds +++|*         FSECMDS CONTAINS CODE WHICH NORMALLY WOULD BE PART OF THE
00012  M00S00011.fsecmds +++|*         LARGE "PROCESS" CASE STATEMENT, BUT WHICH WE HAVE MOVED
00013  M00S00012.fsecmds +++|*         OUT TO CONSERVE FIELD LENGTH MOST OF THE TIME.  CODE IN
00014  M00S00013.fsecmds +++|*         FSECMDS IS A CANDIDATE FOR ANY OVERLAY STRUCTURING THAT MAY
00015  M00S00014.fsecmds +++|*         BE PROVIDED IN THE FUTURE.  CODE IN FSECMDS MUST BE STRICTLY
00016  M00S00015.fsecmds +++|*         FOR THE SINGLE-USER VERSION ONLY.  REENTRANT PROGRAMMING
00017  M00S00016.fsecmds +++|*         IS NOT USED IN THIS MODULE.
00018  M00S00017.fsecmds +++|#
00019  M00S00018.fsecmds +++|
00020  M00S00019.fsecmds +++|  DEF LISTCON #0#;
00021  M00S00020.fsecmds +++|
00022  M00S00021.fsecmds +++|CONTROL EJECT;                         # UNIVERSAL DECLARES          #
00023  M00S00022.fsecmds +++|
00024  M00S00023.fsecmds +++|*IFCALL SINGLE,COMFSGL
00025  M00S00024.fsecmds +++|*IFCALL ONLY,COMFONL
00026  M00S00025.fsecmds +++|*IFCALL MULTI,COMFMLT
00027  M00S00026.fsecmds +++|*CALL COMFFSE
00028  M00S00027.fsecmds +++|
00029  M00S00028.fsecmds +++|                             # COMMON, DATA      #
00030  M00S00029.fsecmds +++|
00031  M00S00030.fsecmds +++|
00032  M00S00031.fsecmds +++|*CALL COMFDS1
00033  M00S00032.fsecmds +++|*CALL COMFVD2
00034  M00S00033.fsecmds +++|*CALL COMFDS2
00035  M00S00034.fsecmds +++|
00036  M00S00035.fsecmds +++|
00037  M00S00036.fsecmds +++|                             # COMMAND/SYNTAX TABLES       #
00038  M00S00037.fsecmds +++|
00039  M00S00038.fsecmds +++|
00040  M00S00039.fsecmds +++|*CALL COMFTAB
00041  M00S00040.fsecmds +++|
00042  M00S00041.fsecmds +++|
00043  M00S00042.fsecmds +++|                             # EXTERNALS         #
00044  M00S00043.fsecmds +++|
00045  M00S00044.fsecmds +++|
00046  M00S00045.fsecmds +++|XDEF
00047  M00S00046.fsecmds +++|  BEGIN
00048  M00S00047.fsecmds +++|*CALL COMFXCM
00049  M00S00048.fsecmds +++|  END
00050  M00S00049.fsecmds +++|
00051  M00S00050.fsecmds +++|
00052  M00S00051.fsecmds +++|XREF
00053  M00S00052.fsecmds +++|  BEGIN
00054  M00S00053.fsecmds +++|*CALL COMFXFL
00055  M00S00054.fsecmds +++|*CALL COMFXSC
00056  M00S00055.fsecmds +++|*CALL COMFXED
00057  M00S00056.fsecmds +++|*CALL COMFXSB
00058  M00S00057.fsecmds +++|*CALL COMFXTI
00059  M00S00058.fsecmds +++|*CALL COMFXFO
00060  M00S00059.fsecmds +++|*CALL COMFXWK
00061  M00S00060.fsecmds +++|  END
00062  M00S00061.fsecmds +++|
00063  M00S00062.fsecmds +++|XREF                         # SYMPLIB SUPPORT   #
00064  M00S00063.fsecmds +++|  BEGIN
00065  M00S00064.fsecmds +++|  PROC REWIND;
00066  M00S00065.fsecmds +++|  PROC WRITER;
00067  M00S00066.fsecmds +++|  PROC READ;
00068  M00S00067.fsecmds +++|  PROC RETERN;
00069  M00S00068.fsecmds +++|  PROC RECALL;
00070  M00S00069.fsecmds +++|  PROC PF;
00071  M00S00070.fsecmds +++|  PROC WRITEC;
00072  M00S00071.fsecmds +++|  PROC READC;
00073  M00S00072.fsecmds +++|  PROC SKIPEI;
00074  M00S00073.fsecmds +++|  PROC BKSP;
00075  M00S00074.fsecmds +++|  END
00076  M00S00075.fsecmds +++|
00077  M00S00076.fsecmds +++|XREF                         # FSELIB  #
00078  M00S00077.fsecmds +++|  BEGIN
00079  M00S00078.fsecmds +++|  FUNC FIXCTL B;
00080  M00S00079.fsecmds +++|  FUNC LENGTH;
00081  M00S00080.fsecmds +++|  PROC FLDLEN;
00082  M00S00081.fsecmds +++|  END
00083  M00S00082.fsecmds +++|
Line S00001 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00084  M01S00001.ns2404  +++|XREF                         # VIRTERM #
00085  M01S00002.ns2404  +++|  BEGIN
00086  M01S00003.ns2404  +++|  PROC VDTCHR;
00087  M01S00004.ns2404  +++|  END
00088  M01S00005.ns2404  +++|
00089  M00S00083.fsecmds +++|XREF                         # BUFFER MAPPING    #
00090  M00S00084.fsecmds +++|  BEGIN
00091  M00S00085.fsecmds +++|  ARRAY WORKBUF;;
00092  M00S00086.fsecmds +++|  ARRAY BUILDBF;;
00093  M00S00087.fsecmds +++|  ITEM MAXADDR;
00094  M00S00088.fsecmds +++|  END
00095  M00S00089.fsecmds +++|PAGE                         # DATA LOCAL TO OVERLAY       #
00096  M00S00090.fsecmds +++|
00097  M00S00091.fsecmds +++|
00098  M00S00092.fsecmds +++|ITEM RESULT,NWORDS, TMP1, INDEX, KILLUPLOW B, ZERO=0;
00099  M00S00093.fsecmds +++|ITEM SAVBLANKS, SAVLINENO;
00100  M00S00094.fsecmds +++|
00101  M00S00095.fsecmds +++|ARRAY STATUSMSGS [0:3] P(2);
00102  M00S00096.fsecmds +++|  BEGIN
00103  M00S00097.fsecmds +++|  ITEM YESORNO    C(0,0,7)=["  NO   ", "  YES  ", " ", " "];
00104  M00S00098.fsecmds +++|  ITEM CHARTYPE   C(1,0,7)=["DISPLAY", "DISPLAY", " ASCII ",
00105  M00S00099.fsecmds +++|                            " 8/12  "];
00106  M00S00100.fsecmds +++|  END
00107  M00S00101.fsecmds +++|PAGE                         # USEFUL LITTLE ROUTINES      #
00108  M00S00102.fsecmds +++|
00109  M00S00103.fsecmds +++|
00110  M00S00104.fsecmds +++|PROC XFRCMOUT;
00111  M00S00105.fsecmds +++|  BEGIN
00112  M00S00106.fsecmds +++|#
00113  M00S00107.fsecmds +++|**        XFRCMOUT - OUTWARD LINE TRANSFER FOR COPY/MOVE.
00114  M00S00108.fsecmds +++|*
00115  M00S00109.fsecmds +++|*         ENTRY  LIN - INTERNAL LINE IMAGE.
00116  M00S00110.fsecmds +++|*                FORCEFIELD, CHARRANGE - MODE SETTINGS.
00117  M00S00111.fsecmds +++|*                CHRPTR1, CHRPTR2, FIRSTRANGE, LASTRANGE - DITTO.
00118  M00S00112.fsecmds +++|*                MOVEFET - FET FOR SCRATCH FILE.
00119  M00S00113.fsecmds +++|*
00120  M00S00114.fsecmds +++|*         EXIT   IMAGE WRITTEN TO SCRATCH IN 6/12 CHARSET.
00121  M00S00115.fsecmds +++|*
00122  M00S00116.fsecmds +++|*         MACROS SETCHAR.
00123  M00S00117.fsecmds +++|*
00124  M00S00118.fsecmds +++|*         CALLS  LSHIFT, CONVOUT, POSZ, WRITEC.
00125  M00S00119.fsecmds +++|#
00126  M00S00120.fsecmds +++|  IF FORCEFIELD THEN
00127  M00S00121.fsecmds +++|    BEGIN
00128  M00S00122.fsecmds +++|    SETCHAR(LINE,CHRPTR2+1,CENDLINE);
00129  M00S00123.fsecmds +++|    LSHIFT(LIN,CHRPTR1,CHRPTR1);
Line S00124 Modification History
M01 (Removed by) ns2582
Seq #  *Modification Id* Act 
----------------------------+
00130  M01S00124.ns2582  ---|    CONVOUT(LIN,2);
Line S00001 Modification History
M01 (Added by) ns2582
Seq #  *Modification Id* Act 
----------------------------+
00131  M01S00001.ns2582  +++|    CONVOUT(LIN,4);
00132  M00S00125.fsecmds +++|    POSZ(CURRENT);         # RE-FRESH LINE BUFFER        #
00133  M00S00126.fsecmds +++|    END
00134  M00S00127.fsecmds +++|  ELSE IF CHARRANGE THEN
00135  M00S00128.fsecmds +++|    BEGIN                   # TRUNCATE LAST, SHIFT FIRST  #
00136  M00S00129.fsecmds +++|    IF LASTRANGE THEN SETCHAR(LINE,CHRPTR2+1,CENDLINE);
00137  M00S00130.fsecmds +++|    IF FIRSTRANGE THEN LSHIFT(LIN,CHRPTR1,CHRPTR1);
Line S00131 Modification History
M01 (Removed by) ns2582
Seq #  *Modification Id* Act 
----------------------------+
00138  M01S00131.ns2582  ---|    CONVOUT(LIN,2);
Line S00002 Modification History
M01 (Added by) ns2582
Seq #  *Modification Id* Act 
----------------------------+
00139  M01S00002.ns2582  +++|    CONVOUT(LIN,4);
00140  M00S00132.fsecmds +++|    POSZ(CURRENT);         # RE-FRESH LINE BUFFER        #
00141  M00S00133.fsecmds +++|    END
Line S00134 Modification History
M01 (Removed by) ns2582
Seq #  *Modification Id* Act 
----------------------------+
00142  M01S00134.ns2582  ---|  ELSE CONVOUT(LIN,2);
Line S00003 Modification History
M01 (Added by) ns2582
Seq #  *Modification Id* Act 
----------------------------+
00143  M01S00003.ns2582  +++|  ELSE CONVOUT(LIN,4);
00144  M00S00135.fsecmds +++|  WRITEC(MOVEFET,TMPLIN);
00145  M00S00136.fsecmds +++|  END                       # OF XFRCMOUT       #
00146  M00S00137.fsecmds +++|
00147  M00S00138.fsecmds +++|
00148  M00S00139.fsecmds +++|PROC XFRCMIN;
00149  M00S00140.fsecmds +++|  BEGIN
00150  M00S00141.fsecmds +++|#
00151  M00S00142.fsecmds +++|**        XFRCMIN - INWARD TRANSFER FOR COPY/MOVE.
00152  M00S00143.fsecmds +++|*
00153  M00S00144.fsecmds +++|*         ENTRY  MOVEFET - SCRATCH FILE FET.
00154  M00S00145.fsecmds +++|*
00155  M00S00146.fsecmds +++|*         EXIT   LIN - LINE IMAGE, INTERNAL CHARSET FROM 6/12.
00156  M00S00147.fsecmds +++|*
00157  M00S00148.fsecmds +++|*         CALLS  READC, CONVIN.
00158  M00S00149.fsecmds +++|#
00159  M00S00150.fsecmds +++|  ITEM TMP1;
00160  M00S00151.fsecmds +++|  READC(MOVEFET,TMPLIN,BUFWID2P1,TMP1);
00161  M00S00152.fsecmds +++|  IF TMP1 NQ 0 THEN FATAL(" TRANSFER TO THE BUFFER IS INCOMPLETE.$");
00162  M00S00153.fsecmds +++|  CONVIN(LIN,2);
00163  M00S00154.fsecmds +++|  END                       # OF XFRCMIN        #
00164  M00S00155.fsecmds +++|
00165  M00S00156.fsecmds +++|
Line S00157 Modification History
M01 (Removed by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00166  M01S00157.ns2404  ---|PROC TTCHAR(VALUE,TITLE);
00167  M01S00158.ns2404  ---|  BEGIN
00168  M01S00159.ns2404  ---|#
00169  M01S00160.ns2404  ---|**        TTCHAR - OUTPUT ANY CHARACTER.
00170  M01S00161.ns2404  ---|*
00171  M01S00162.ns2404  ---|*         TTCHAR OUTPUTS A SINGLE CHARACTER, AND HAS THE UNIQUE
00172  M01S00163.ns2404  ---|*         PROPERTY OF OUTPUTTING EXPLANATORY KEYWORDS FOR THE
00173  M01S00164.ns2404  ---|*         UNPRINTABLE CHARACTER (BLANK) AS WELL AS PROVIDING FOR
00174  M01S00165.ns2404  ---|*         A NON-EXISTENT CHARACTER.  THE CHARACTER IS IN THE INTERNAL
00175  M01S00166.ns2404  ---|*         CHARACTER SET, AND SINCE IT MAY BE ONE OF THE PUNCTUATION
00176  M01S00167.ns2404  ---|*         MARKS  UNAAILABLE IN THE DISPLAY CODE, WE CONVERT TO 6/12.
00177  M01S00168.ns2404  ---|*
00178  M01S00169.ns2404  ---|*         ENTRY  VALUE - THE CHARACTER AS RIGHT-JUSTIFY INTEGER.
00179  M01S00170.ns2404  ---|*                TITLE - A DESCRIPTIVE TITLE.
00180  M01S00171.ns2404  ---|*
00181  M01S00172.ns2404  ---|*         MACROS SETCHAR.
00182  M01S00173.ns2404  ---|*
00183  M01S00174.ns2404  ---|*         CALLS  TTSTR, TTLIN, VDTWTC, CONVOUT, TTSYNC.
00184  M01S00175.ns2404  ---|*
00185  M01S00176.ns2404  ---|*         USES   TMPLIN, LIN.
00186  M01S00177.ns2404  ---|#
00187  M01S00178.ns2404  ---|  ITEM VALUE, TITLE C(20);
00188  M01S00179.ns2404  ---|  ITEM TMP1;
00189  M01S00180.ns2404  ---|  TTSTR(TITLE);
00190  M01S00181.ns2404  ---|  IF VALUE EQ CNOTHING THEN TTLIN("(NONE)$");
00191  M01S00182.ns2404  ---|  ELSE IF VALUE EQ CBLANK THEN TTLIN("(BLANK)$");
00192  M01S00183.ns2404  ---|  ELSE
00193  M01S00184.ns2404  ---|    BEGIN
00194  M01S00185.ns2404  ---|    TMP1=XLTINTDSP[VALUE];
00195  M01S00186.ns2404  ---|    C<0,1>TMP1=C<9,1>TMP1;
00196  M01S00187.ns2404  ---|    TTST(TMP1,1);
00197  M01S00188.ns2404  ---|    END
00198  M01S00189.ns2404  ---|  END                        # OF TTCHAR         #
Line S00006 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00199  M02S00006.fsecm7  ---|PROC TTCHAR(CHAR,TITLE);
Line S00001 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00200  M01S00001.fsecm7  +++|PROC TTCHAR(CHAR,SYMBOL);
Line S00007 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00201  M01S00007.ns2404  +++|  BEGIN
00202  M01S00008.ns2404  +++|#
Line S00009 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00203  M02S00009.fsecm7  ---|**        TTCHAR - OUTPUT CHARACTER AND MESSAGE.
Line S00002 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00204  M01S00002.fsecm7  +++|**        TTCHAR - OUTPUT INTERNAL CHARACTER TO TERMINAL.
Line S00010 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00205  M01S00010.ns2404  +++|*
Line S00011 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00206  M02S00011.fsecm7  ---|*         TTCHAR OUTPUTS A SINGLE CHARACTER, USING EXPLANATORY
00207  M02S00012.fsecm7  ---|*         KEYWORDS FOR (BLANK) AND (NONE) IF NEEDED, ALONG WITH
00208  M02S00013.fsecm7  ---|*         A DESCRIPTIVE TITLE.  NOTE THAT SINCE THE TERMINAL IS
00209  M02S00014.fsecm7  ---|*         DRIVEN IN 6/12 WHILE IN LINE MODE SPECIAL TRANSLATION
00210  M02S00015.fsecm7  ---|*         MAY BE NEEDED.
Line S00003 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00211  M01S00003.fsecm7  +++|*         TTCHAR OUTPUTS A SINGLE CHARACTER, USING SYMBOLIC KEYWORDS
00212  M01S00004.fsecm7  +++|*         FOR (BLANK) AND (NONE) IF REQUESTED.  NOTE THAT SINCE THE
00213  M01S00005.fsecm7  +++|*         TERMINAL IS DRIVEN IN 6/12 WHILE IN LINE MODE SPECIAL
00214  M01S00006.fsecm7  +++|*         TRANSLATION MAY BE NEEDED.
Line S00016 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00215  M01S00016.ns2404  +++|*
00216  M01S00017.ns2404  +++|*         ENTRY  CHAR       = THE CHARACTER (INTERNAL CSET).
Line S00018 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00217  M02S00018.fsecm7  ---|*                TITLE      = ASSOCIATED DESCRIPTIVE TITLE.
Line S00007 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00218  M01S00007.fsecm7  +++|*                SYMBOL     = USE SYMBOLIC NOTATION (TRUE/FALSE).
Line S00019 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00219  M01S00019.ns2404  +++|*
00220  M01S00020.ns2404  +++|*         CALLS  TTST, TTSTR, VDTCHR.
00221  M01S00021.ns2404  +++|#
00222  M01S00022.ns2404  +++|  ITEM CHAR       I;                 # CHARACTER, AS INTEGER #
Line S00023 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00223  M02S00023.fsecm7  ---|  ITEM TITLE      C(20);             # ASSOCIATED DESCRIPTOR #
Line S00008 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00224  M01S00008.fsecm7  +++|  ITEM SYMBOL     B;                 # SYMBOLIC FLAG (TRUE/FALSE) #
Line S00024 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00225  M01S00024.ns2404  +++|
00226  M01S00025.ns2404  +++|  ITEM TMP1       I;                 # TEMPORARY #
00227  M01S00026.ns2404  +++|
Line S00027 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00228  M02S00027.fsecm7  ---|  TTSTR(TITLE);                      # OUTPUT DESCRIPTIVE TITLE #
Line S00028 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00229  M01S00028.ns2404  +++|  IF CHAR EQ CNOTHING THEN
00230  M01S00029.ns2404  +++|    BEGIN                            # IF NO CHARACTER #
Line S00030 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00231  M02S00030.fsecm7  ---|    TTSTR("(NONE)$");
Line S00009 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00232  M01S00009.fsecm7  +++|    IF SYMBOL THEN TTSTR("(NONE)$"); # IF SYMBOLIC REQUESTED #
Line S00031 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00233  M01S00031.ns2404  +++|    END
00234  M01S00032.ns2404  +++|  ELSE
Line S00033 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00235  M02S00033.fsecm7  ---|    BEGIN                            # CHECK FOR BLANK #
00236  M02S00034.fsecm7  ---|    IF CHAR EQ CBLANK THEN
00237  M02S00035.fsecm7  ---|      BEGIN                          # IF BLANK #
00238  M02S00036.fsecm7  ---|      TTSTR("(BLANK)$");
Line S00010 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00239  M01S00010.fsecm7  +++|    BEGIN                            # IF CHARACTER OR BLANK #
Line S00037 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00240  M02S00037.fsecm7  ---|      END
Line S00011 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00241  M01S00011.fsecm7  +++|    IF SYMBOL AND CHAR EQ CBLANK THEN TTSTR("(BLANK)$"); # IF SYMBOL #
Line S00038 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00242  M01S00038.ns2404  +++|    ELSE
Line S00039 Modification History
M01 (Added by) ns2404
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00243  M02S00039.fsecm7  ---|      BEGIN                          # NOT NONE OR BLANK #
Line S00012 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
00244  M01S00012.fsecm7  +++|      BEGIN                          # IF CHARACTER OR NORMAL BLANK #
Line S00040 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
00245  M01S00040.ns2404  +++|      IF SCREENMODE THEN
00246  M01S00041.ns2404  +++|        BEGIN                        # IF SCREEN MODE #
00247  M01S00042.ns2404  +++|        TMP1 = XLTINTXP[CHAR];       # TRANSLATE, OUTPUT #
00248  M01S00043.ns2404  +++|        VDTCHR(TMP1);
00249  M01S00044.ns2404  +++|        END
00250  M01S00045.ns2404  +++|      ELSE
00251  M01S00046.ns2404  +++|        BEGIN                        # LINE MODE #
00252  M01S00047.ns2404  +++|        TMP1=XLTINTDSP[CHAR];        # TRANSLATE TO DISPLAY #
00253  M01S00048.ns2404  +++|        IF CHAR EQ CATSIGN OR CHAR EQ CUPARROW OR CHAR EQ CGRAVE THEN
00254  M01S00049.ns2404  +++|          BEGIN                      # IF 74XX TRANSLATION NEEDED #
00255  M01S00050.ns2404  +++|          TTCHR(O"74");              # OUTPUT ESCAPE CHARACTER #
00256  M01S00051.ns2404  +++|          TMP1 = O"01";              # ASSUME AT SIGN #
00257  M01S00052.ns2404  +++|          IF CHAR EQ CUPARROW THEN TMP1 = O"02";
00258  M01S00053.ns2404  +++|          IF CHAR EQ CGRAVE THEN TMP1 = O"07";
00259  M01S00054.ns2404  +++|          END
00260  M01S00055.ns2404  +++|        ELSE
00261  M01S00056.ns2404  +++|          BEGIN                      # NOT 74XX #
00262  M01S00057.ns2404  +++|          IF CHAR EQ CLEFTCURL OR CHAR EQ CVERTICAL OR
00263  M01S00058.ns2404  +++|            CHAR EQ CRITECURL OR  CHAR EQ CTILDE THEN
00264  M01S00059.ns2404  +++|            BEGIN                    # IF 76XX TRANSLATION NEEDED #
00265  M01S00060.ns2404  +++|            TTCHR(O"76");            # OUTPUT ESCAPE CHARACTER #
00266  M01S00061.ns2404  +++|            TMP1 = O"33";            # ASSUME LEFT BRACE #
00267  M01S00062.ns2404  +++|            IF CHAR EQ CVERTICAL THEN TMP1 = O"34";
00268  M01S00063.ns2404  +++|            IF CHAR EQ CRITECURL THEN TMP1 = O"35";
00269  M01S00064.ns2404  +++|            IF CHAR EQ CTILDE THEN TMP1 = O"36";
00270  M01S00065.ns2404  +++|            END
00271  M01S00066.ns2404  +++|          END
00272  M01S00067.ns2404  +++|        TTCHR(TMP1);                 # OUTPUT (REST OF) CHARACTER #
00273  M01S00068.ns2404  +++|        END
00274  M01S00069.ns2404  +++|      END
00275  M01S00070.ns2404  +++|    END
00276  M01S00071.ns2404  +++|  END  # TTCHAR #
00277  M00S00190.fsecmds +++|
00278  M00S00191.fsecmds +++|
00279  M00S00192.fsecmds +++|PROC UNDODECODE(POS,NUM);
00280  M00S00193.fsecmds +++|  BEGIN
00281  M00S00194.fsecmds +++|#
00282  M00S00195.fsecmds +++|**        UNDODECODE - DECODE AN AUDIT TRAIL DESCRIPTOR.
00283  M00S00196.fsecmds +++|*
00284  M00S00197.fsecmds +++|*         ENTRY  POS - CHARACTER POSITION OF FIELD.
00285  M00S00198.fsecmds +++|*                LIN - CONTAINS DESCRIPTOR.
00286  M00S00199.fsecmds +++|*
00287  M00S00200.fsecmds +++|*         EXIT   NUM - VALUE DECODED FROM FIELD.
00288  M00S00201.fsecmds +++|*
00289  M00S00202.fsecmds +++|*         MACROS GETCHAR.
00290  M00S00203.fsecmds +++|#
00291  M00S00204.fsecmds +++|  ITEM POS, NUM, TMP1, TMP2;
00292  M00S00205.fsecmds +++|  NUM=0;
00293  M00S00206.fsecmds +++|  TMP2=POS;
00294  M00S00207.fsecmds +++|  GETCHAR(LINE,TMP2,TMP1);
00295  M00S00208.fsecmds +++|  WHYLE TMP1 GQ CDIGIT0 AND TMP1 LQ CDIGIT9 DO
00296  M00S00209.fsecmds +++|    BEGIN
00297  M00S00210.fsecmds +++|    NUM=NUM*10+TMP1-CDIGIT0;
00298  M00S00211.fsecmds +++|    TMP2=TMP2+1;
00299  M00S00212.fsecmds +++|    GETCHAR(LINE,TMP2,TMP1);
00300  M00S00213.fsecmds +++|    END
00301  M00S00214.fsecmds +++|  END                         # OF UNDODECODE     #
00302  M00S00215.fsecmds +++|
00303  M00S00216.fsecmds +++|
00304  M00S00217.fsecmds +++|PROC UNDOPOS(OFFSET);
00305  M00S00218.fsecmds +++|  BEGIN
00306  M00S00219.fsecmds +++|#
00307  M00S00220.fsecmds +++|**        UNDOPOS - POSITION TO AUDITED DATA LINE.
00308  M00S00221.fsecmds +++|*
00309  M00S00222.fsecmds +++|*         ENTRY  OFFSET - DIFFERENCE BETWEEN LINNUM3 AND TARGET.
00310  M00S00223.fsecmds +++|*                LINNUM1 - FILE BRACKET NUMBER.
00311  M00S00224.fsecmds +++|*                LINNUM3 - LINE ORDINAL IN FILE BRACKET.
00312  M00S00225.fsecmds +++|*
00313  M00S00226.fsecmds +++|*         EXIT   CURFILE - EQUALS LINNUM1.
00314  M00S00227.fsecmds +++|*                CURRENT - ABSOLUTE LINE ADDRESS.
00315  M00S00228.fsecmds +++|*                LIN - THE TEXT OF THE LINE.
00316  M00S00229.fsecmds +++|*                CURF(CURFILE) - EQUAL TO CURRENT.
00317  M00S00230.fsecmds +++|*                P<LINEBUF> - POINTS TO LIN.
00318  M00S00231.fsecmds +++|*
00319  M00S00232.fsecmds +++|*         CALLS  POSZ.
00320  M00S00233.fsecmds +++|#
00321  M00S00234.fsecmds +++|  ITEM OFFSET;
00322  M00S00235.fsecmds +++|  P<LINEBUF>=0;              # POSITION INVISIBLY          #
00323  M00S00236.fsecmds +++|  POSZ(TOPF(LINNUM1)+LINNUM3+OFFSET);
00324  M00S00237.fsecmds +++|  P<LINEBUF>=LOC(LIN);       # RESTORE #
00325  M00S00238.fsecmds +++|  CURFILE=LINNUM1;           # REMEMBER WHERE WE ARE       #
00326  M00S00239.fsecmds +++|  CURF(CURFILE)=CURRENT;
00327  M00S00240.fsecmds +++|  END                         # OF UNDOPOS        #
00328  M00S00241.fsecmds +++|
00329  M00S00242.fsecmds +++|
00330  M00S00243.fsecmds +++|PROC UNDOOPEN(BRACKET,DIRECTORY);
00331  M00S00244.fsecmds +++|  BEGIN
00332  M00S00245.fsecmds +++|#
00333  M00S00246.fsecmds +++|**        UNDOOPEN - GET FILE IMAGE INTO ACTIVE BRACKET.
00334  M00S00247.fsecmds +++|*
00335  M00S00248.fsecmds +++|*         ENTRY  BRACKET - DESIRED BRACKET NUMBER.
00336  M00S00249.fsecmds +++|*                DIRECTORY - WORKFILE ADDRESS OF FILE DIRECTORY LINE.
00337  M00S00250.fsecmds +++|*
00338  M00S00251.fsecmds +++|*         EXIT   FILE IS OPENED IN BRACKET.
00339  M00S00252.fsecmds +++|*                THIS AFFECTS TOPF(), BOTF(), ETC.
00340  M00S00253.fsecmds +++|*
00341  M00S00254.fsecmds +++|*         CALLS  PUSH, POSZ, SCANFDL, OPENFILE, POP.
00342  M00S00255.fsecmds +++|*
00343  M00S00256.fsecmds +++|*         USES   READNAM, FILNUM, CHARPARM, GETPARM.
00344  M00S00257.fsecmds +++|#
00345  M00S00258.fsecmds +++|  ITEM BRACKET, DIRECTORY;
00346  M00S00259.fsecmds +++|  IF DIRECTORY EQ 0 OR DIRECTORY EQ FDLF(BRACKET) THEN RETURN;
00347  M00S00260.fsecmds +++|  PUSH;
00348  M00S00261.fsecmds +++|  POSZ(DIRECTORY);
00349  M00S00262.fsecmds +++|  SCANFDL(READNAM);
00350  M00S00263.fsecmds +++|  FILNUM=BRACKET;
00351  M00S00264.fsecmds +++|  CHARPARM=0;
00352  M00S00265.fsecmds +++|  GETPARM=0;
00353  M00S00266.fsecmds +++|  OPENFILE;
00354  M00S00267.fsecmds +++|  POP;
00355  M00S00268.fsecmds +++|  END                         # OF UNDOOPEN       #
00356  M00S00269.fsecmds +++|
00357  M00S00270.fsecmds +++|
00358  M00S00271.fsecmds +++|PROC DOFILL;
00359  M00S00272.fsecmds +++|  BEGIN
00360  M00S00273.fsecmds +++|#
00361  M00S00274.fsecmds +++|**        DOFILL - MAIN ALGORITHM FOR PARAGRAPH FORMATTING.
00362  M00S00275.fsecmds +++|*
00363  M00S00276.fsecmds +++|*         DOFILL IS THE MAIN PROCESSING ALGORITHM FOR THE WORD-
00364  M00S00277.fsecmds +++|*         PROCESSING COMMAND, ".FILL".  THE UNIVERSAL SYNTAX
00365  M00S00278.fsecmds +++|*         SCANNER MUST BE CALLED BEFORE BEFORE DOFILL.  DOFILL
00366  M00S00279.fsecmds +++|*         ACCEPTS EXPLICIT RANGE BOUNDARIES, OR COMPUTE AN IMPLICIT
00367  M00S00280.fsecmds +++|*         RANGE AS THE PARAGRAPH SURROUNDING ONE TARGET LINE.
00368  M00S00281.fsecmds +++|*         MARGINS MAY BE COLUMN 1 THRU THE WIDTH SETTING, OR A
00369  M00S00282.fsecmds +++|*         TAB FIELD.
00370  M00S00283.fsecmds +++|*
00371  M00S00284.fsecmds +++|*         ENTRY  SCANNER HAS BEEN CALLED.
00372  M00S00285.fsecmds +++|*                LINPTR1 - FIRST LINE OF RANGE IF RANGE EXPLICIT.
00373  M00S00286.fsecmds +++|*                          ANY ADDRESS WITHIN PARAGRAPH FOR IMPLICIT.
00374  M00S00287.fsecmds +++|*                LINPTR2 - LAST LINE OF RANGE IF RANGE EXPLICIT.
00375  M00S00288.fsecmds +++|*                LIMIT - RANGE LENGTH LIMIT IF RANGE EXPLICIT.
00376  M00S00289.fsecmds +++|*                NONDEFAULT - TELLS RANGE IMPLICIT OR EXPLICIT.
00377  M00S00290.fsecmds +++|*                FILLLEFT, FILLRIGHT - DEFAULT MARGIN OBJECTIVES.
00378  M00S00291.fsecmds +++|*                FILLFIRST - DEFAULT MARGIN OBJECTIVES.
00379  M00S00292.fsecmds +++|*                CURFILE - WHICH FILE BRACKET.
00380  M00S00293.fsecmds +++|*                NUMBERED[CURFILE] - REQUIRED TO BE FALSE.
00381  M00S00294.fsecmds +++|*                TOPF(CURFILE), BOTF(CURFILE) - FILE BOUNDS.
00382  M00S00295.fsecmds +++|*                SCREENMODE - CONTROLS FINAL POSITIONING/PRINTING.
00383  M00S00296.fsecmds +++|*
00384  M00S00297.fsecmds +++|*         EXIT   LINPTR1, LINPTR2, LIMIT - POSSIBLY DESTROYED.
00385  M00S00298.fsecmds +++|*                CURRENT - FRONT OF RESULTANT RANGE IF SCREEN,
00386  M00S00299.fsecmds +++|*                    ELSE END OF RESULTANT RANGE.
00387  M00S00300.fsecmds +++|*                LIN - TEXT OF CURRENT LINE.
00388  M00S00301.fsecmds +++|*                BOTF(CURFILE) - POSSIBLY RELOCATED.
00389  M00S00302.fsecmds +++|*
00390  M00S00303.fsecmds +++|*         MACROS GETCHAR, SETCHAR.
00391  M00S00304.fsecmds +++|*
00392  M00S00305.fsecmds +++|*         CALLS  TABFN, MIN, MAX, POSZ, LENGTH, BAKZ, FWDZ, TRIMPAD,
00393  M00S00306.fsecmds +++|*                REPX, LSHIFT, RSHIFT, DOSPLIT, COPYLIN, DORANGE.
00394  M00S00307.fsecmds +++|*
00395  M00S00308.fsecmds +++|*         USES   TTYLIN.
00396  M00S00309.fsecmds +++|#
00397  M00S00310.fsecmds +++|  ITEM FILLLOOP;             # USED FOR LOOP TESTING       #
00398  M00S00311.fsecmds +++|  ITEM LMARGIN, RMARGIN;
Line S00312 Modification History
M01 (Removed by) ns2503
Seq #  *Modification Id* Act 
----------------------------+
00399  M01S00312.ns2503  ---|  ITEM TMP1, TMP2, TMP3, TMP4, TMP5;
Line S00001 Modification History
M01 (Added by) ns2503
Seq #  *Modification Id* Act 
----------------------------+
00400  M01S00001.ns2503  +++|  ITEM TMP1, TMP2, TMP3, TMP4, TMP5, TMP6;
00401  M01S00002.ns2503  +++|  ITEM LEFTRIGHT B;
00402  M00S00313.fsecmds +++|
00403  M00S00314.fsecmds +++|  # PROCESS A PARAGRAPH OF WORDS OF TEXT CENTERED AROUND  #
00404  M00S00315.fsecmds +++|  # THE CURRENT LINE (LINPTR1 INITIALLY).  WE LOOK BACK   #
00405  M00S00316.fsecmds +++|  # AND FORWARDS FOR BOUNDARIES, THEN PROCESS THE BLOCK   #
00406  M00S00317.fsecmds +++|  # MERGING WORDS ONTO LINES TO MATCH "SET WIDTH".        #
00407  M00S00318.fsecmds +++|
00408  M00S00319.fsecmds +++|  IF NUMBERED[CURFILE] NQ 0 THEN
00409  M00S00320.fsecmds +++|    BEGIN
00410  M00S00321.fsecmds +++|    ERRJUMP("FILE MUST NOT CONTAIN SEQUENCE NUMBERS$");
00411  M00S00322.fsecmds +++|    END
00412  M00S00323.fsecmds +++|
00413  M00S00324.fsecmds +++|  LMARGIN=FILLFIRST;
00414  M00S00325.fsecmds +++|  RMARGIN=FILLRIGHT;
00415  M01S00003.ns2503  +++|  LEFTRIGHT = FALSE;
00416  M00S00326.fsecmds +++|
00417  M00S00327.fsecmds +++|  IF NONDEFAULT THEN         # USE LINPTR1, LINPTR2        #
00418  M00S00328.fsecmds +++|    BEGIN
00419  M00S00329.fsecmds +++|    REGLINE[RNGTOPREG]=LINPTR1-1;
00420  M00S00330.fsecmds +++|    REGLINE[RNGBOTREG]=MIN(LINPTR2+1,LINPTR1+LIMIT);
00421  M00S00331.fsecmds +++|    END
00422  M00S00332.fsecmds +++|  ELSE                       # SEARCH FOR PARAGRAPH        #
00423  M00S00333.fsecmds +++|    BEGIN
00424  M00S00334.fsecmds +++|    POSZ(LINPTR1);
Line S00335 Modification History
M01 (Removed by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00425  M01S00335.ns2411  ---|    IF LENGTH(LIN) EQ 0 THEN RETURN;    # NONE TODO        #
00426  M01S00336.ns2411  ---|    WHYLE CURRENT GR TOPF(CURFILE) AND LENGTH(LIN) GR 0 DO
Line S00001 Modification History
M01 (Added by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00427  M01S00001.ns2411  +++|    IF NOTEXT THEN RETURN;           # NO TEXT ON THIS LINE #
00428  M01S00002.ns2411  +++|    WHYLE CURRENT GR TOPF(CURFILE) AND NOT NOTEXT DO
00429  M00S00337.fsecmds +++|      BEGIN                   # LOOK BACK FOR BLANK         #
00430  M00S00338.fsecmds +++|      BAKZ;
00431  M00S00339.fsecmds +++|      IF USRBRK NQ 0 THEN RETURN;
00432  M00S00340.fsecmds +++|      END
00433  M00S00341.fsecmds +++|    REGLINE[RNGTOPREG]=CURRENT;
00434  M00S00342.fsecmds +++|    POSZ(LINPTR1);
Line S00343 Modification History
M01 (Removed by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00435  M01S00343.ns2411  ---|    WHYLE CURRENT LS BOTF(CURFILE) AND LENGTH(LIN) GR 0 DO
Line S00003 Modification History
M01 (Added by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00436  M01S00003.ns2411  +++|    WHYLE CURRENT LS BOTF(CURFILE) AND NOT NOTEXT DO
00437  M00S00344.fsecmds +++|      BEGIN                   # LOOK FORWARDS FOR BLANK     #
00438  M00S00345.fsecmds +++|      FWDZ;
00439  M00S00346.fsecmds +++|      IF USRBRK NQ 0 THEN RETURN;
00440  M00S00347.fsecmds +++|      END
00441  M00S00348.fsecmds +++|    REGLINE[RNGBOTREG]=CURRENT;
00442  M00S00349.fsecmds +++|    END
00443  M00S00350.fsecmds +++|
00444  M00S00351.fsecmds +++|  POSZ(REGLINE[RNGTOPREG]+1);
00445  M00S00352.fsecmds +++|  FOR FILLLOOP=FILLLOOP WHILE CURRENT LS REGLINE[RNGBOTREG]
00446  M00S00353.fsecmds +++|    AND CURRENT GR REGLINE[RNGTOPREG] AND USRBRK EQ 0 DO
00447  M00S00354.fsecmds +++|    BEGIN
00448  M00S00355.fsecmds +++|
00449  M00S00356.fsecmds +++|    IF CURRENT GR REGLINE[RNGTOPREG]+1 THEN
00450  M00S00357.fsecmds +++|      BEGIN                          # LOOK BACK FOR START PARA #
00451  M00S00358.fsecmds +++|      BAKZ;
Line S00359 Modification History
M01 (Removed by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00452  M01S00359.ns2411  ---|      IF LENGTH(LIN) EQ 0 THEN LMARGIN=FILLFIRST;
Line S00004 Modification History
M01 (Added by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00453  M01S00004.ns2411  +++|      IF NOTEXT THEN LMARGIN=FILLFIRST;
00454  M00S00360.fsecmds +++|      ELSE LMARGIN=FILLLEFT;
00455  M00S00361.fsecmds +++|      FWDZ;
00456  M00S00362.fsecmds +++|      END
00457  M00S00363.fsecmds +++|
00458  M00S00364.fsecmds +++|    IF LENGTH(LIN) GR EDITFIELD THEN   # KILL PROTECTED    #
00459  M00S00365.fsecmds +++|      BEGIN
00460  M00S00366.fsecmds +++|      SETCHAR(LINE,EDITFIELD,CENDLINE);
00461  M00S00367.fsecmds +++|      TRIMPAD;
00462  M00S00368.fsecmds +++|      REPX;
00463  M00S00369.fsecmds +++|      END
00464  M00S00370.fsecmds +++|
00465  M00S00371.fsecmds +++|    IF LENGTH(LIN) GR 0 THEN           # NORMALIZE SPACING #
00466  M00S00372.fsecmds +++|      BEGIN
00467  M00S00373.fsecmds +++|      TMP1=0;                # CURSOR  #
00468  M00S00374.fsecmds +++|      TMP2=LMARGIN;          # NUMBER OF EXPECTED BLANKS   #
00469  M00S00375.fsecmds +++|      TMP3=0;                # FLAG FOR CHANGES MADE       #
00470  M00S00376.fsecmds +++|      WHYLE TMP1 LS LENGTH(LIN) DO
00471  M00S00377.fsecmds +++|        BEGIN
00472  M00S00378.fsecmds +++|        # FIRST CHECK AND COMPRESS BLANKS BEFORE WORD #
00473  M00S00379.fsecmds +++|        TMP4=TMP1;
00474  M00S00380.fsecmds +++|        GETCHAR(LINE,TMP4,TMP5);
00475  M00S00381.fsecmds +++|        WHYLE TMP5 EQ CBLANK DO        # SPAN BLANKS BEFORE WORD     #
00476  M00S00382.fsecmds +++|          BEGIN
00477  M00S00383.fsecmds +++|          TMP4=TMP4+1;
00478  M00S00384.fsecmds +++|          GETCHAR(LINE,TMP4,TMP5);
00479  M00S00385.fsecmds +++|          END
00480  M00S00386.fsecmds +++|        TMP4=TMP4-TMP1;      # NUMBER OF BLANKS  #
00481  M00S00387.fsecmds +++|        IF TMP4 GR TMP2 THEN          # NEED LESS SPACING #
00482  M00S00388.fsecmds +++|          BEGIN
00483  M00S00389.fsecmds +++|          LSHIFT(LIN,TMP1+TMP4-TMP2,TMP4-TMP2);
00484  M00S00390.fsecmds +++|          TMP3=1;            # FLAG CHANGE       #
00485  M00S00391.fsecmds +++|          END
00486  M00S00392.fsecmds +++|        IF TMP4 LS TMP2 THEN           # NEED MORE SPACING #
00487  M00S00393.fsecmds +++|          BEGIN
00488  M00S00394.fsecmds +++|          RSHIFT(LIN,TMP1,TMP2-TMP4);
00489  M00S00395.fsecmds +++|          FOR TMP3=1 STEP 1 UNTIL TMP2-TMP4
00490  M00S00396.fsecmds +++|            DO SETCHAR(LINE,TMP1+TMP3-1,CBLANK);
00491  M00S00397.fsecmds +++|          TMP3=1;
00492  M00S00398.fsecmds +++|          END
00493  M00S00399.fsecmds +++|        # SECOND SCAN ACROSS WORD TO SET NEW BLANK EXPECTATION       #
00494  M00S00400.fsecmds +++|        TMP1=TMP1+TMP2;      # POINT TO WORD     #
00495  M00S00401.fsecmds +++|        GETCHAR(LINE,TMP1,TMP5);
00496  M00S00402.fsecmds +++|        WHYLE TMP5 NQ CBLANK AND TMP5 NQ CENDLINE DO
00497  M00S00403.fsecmds +++|          BEGIN
00498  M00S00404.fsecmds +++|          TMP4=TMP5;         # NEED TO KNOW LAST CHARACTER OF WORD   #
00499  M00S00405.fsecmds +++|          TMP1=TMP1+1;
00500  M00S00406.fsecmds +++|          GETCHAR(LINE,TMP1,TMP5);
00501  M00S00407.fsecmds +++|          END
Line S00408 Modification History
M01 (Removed by) fsecm6
Seq #  *Modification Id* Act 
----------------------------+
00502  M01S00408.fsecm6  ---|        IF TMP4 EQ CPERIOD OR TMP4 EQ CEXCLAM OR TMP4 EQ CCOLON
00503  M01S00409.fsecm6  ---|          OR TMP4 EQ CQUESTION THEN TMP2=2;
Line S00001 Modification History
M01 (Added by) fsecm6
Seq #  *Modification Id* Act 
----------------------------+
00504  M01S00001.fsecm6  +++|        IF TMP4 EQ CPERIOD OR TMP4 EQ CEXCLAM OR TMP4 EQ CQUESTION
00505  M01S00002.fsecm6  +++|          OR TMP4 EQ XLTDSPINT[CCOLON] THEN TMP2=2;
00506  M00S00410.fsecmds +++|        ELSE TMP2=1;
00507  M00S00411.fsecmds +++|        END
00508  M00S00412.fsecmds +++|      IF TMP3 NQ 0 THEN
00509  M00S00413.fsecmds +++|        BEGIN
00510  M00S00414.fsecmds +++|        TRIMPAD;
00511  M00S00415.fsecmds +++|        REPX;
00512  M00S00416.fsecmds +++|        END
00513  M00S00417.fsecmds +++|      END
00514  M00S00418.fsecmds +++|
Line S00419 Modification History
M01 (Removed by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00515  M01S00419.ns2411  ---|    IF LENGTH(LIN) EQ RMARGIN OR LENGTH(LIN) EQ 0 THEN
Line S00005 Modification History
M01 (Added by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00516  M01S00005.ns2411  +++|    IF LENGTH(LIN) EQ RMARGIN OR NOTEXT THEN
00517  M00S00420.fsecmds +++|      BEGIN                   # SKIP PERFECT OR BLANK LINE  #
00518  M00S00421.fsecmds +++|      FWDZ;
00519  M00S00422.fsecmds +++|      TEST FILLLOOP;
00520  M00S00423.fsecmds +++|      END
00521  M00S00424.fsecmds +++|
00522  M00S00425.fsecmds +++|    IF LENGTH(LIN) GR RMARGIN THEN
00523  M00S00426.fsecmds +++|      BEGIN                   # SPLIT THIS LINE TO SHORTEN  #
00524  M00S00427.fsecmds +++|      TMP1=RMARGIN;
00525  M00S00428.fsecmds +++|      GETCHAR(LINE,TMP1,TMP2);
00526  M00S00429.fsecmds +++|      WHYLE TMP2 NQ CBLANK AND TMP1 GR 0 DO
00527  M00S00430.fsecmds +++|        BEGIN                 # LOOK BACK FOR BLANK         #
00528  M00S00431.fsecmds +++|        TMP1=TMP1-1;
00529  M00S00432.fsecmds +++|        GETCHAR(LINE,TMP1,TMP2);
00530  M00S00433.fsecmds +++|        END
00531  M00S00434.fsecmds +++|      IF TMP1 GR LMARGIN THEN    # SPLIT AND WORK ON SECOND HALF     #
00532  M00S00435.fsecmds +++|        BEGIN
00533  M00S00436.fsecmds +++|        CHRPTR3=TMP1+1;
Line S00437 Modification History
M01 (Removed by) ns2226
Seq #  *Modification Id* Act 
----------------------------+
00534  M01S00437.ns2226  ---|        DOSPLIT;
Line S00001 Modification History
M01 (Added by) ns2226
Seq #  *Modification Id* Act 
----------------------------+
00535  M01S00001.ns2226  +++|        DOSPLIT(1);
Line S00001 Modification History
M01 (Added by) fsecm3
Seq #  *Modification Id* Act 
----------------------------+
00536  M01S00001.fsecm3  +++|        IF RIGHTJUST[0] THEN GOTO JUSTIFY; # IF RIGHT JUSTIFY NEEDED #
00537  M00S00438.fsecmds +++|        END
00538  M00S00439.fsecmds +++|      ELSE FWDZ;             # ALL ONE WORD - JUST MOVE ON           #
Line S00004 Modification History
M01 (Added by) ns2503
M02 (Removed by) fsecm3
Seq #  *Modification Id* Act 
----------------------------+
00539  M02S00004.fsecm3  ---|      IF RIGHTJUST[0] THEN GOTO JUSTIFY;
00540  M00S00440.fsecmds ---|      TEST FILLLOOP;
00541  M00S00441.fsecmds ---|      END
00542  M00S00442.fsecmds ---|
00543  M00S00443.fsecmds ---|    IF LENGTH(LIN) LS RMARGIN AND CURRENT EQ REGLINE[RNGBOTREG]-1 THEN
00544  M00S00444.fsecmds ---|      BEGIN                   # CANNOT ENLARGE LAST SO SKIP #
00545  M00S00445.fsecmds ---|      FWDZ;
00546  M00S00446.fsecmds ---|      TEST FILLLOOP;         # THIS ACTUALLY TERMINATES LOOP         #
00547  M00S00447.fsecmds ---|      END
00548  M00S00448.fsecmds ---|
00549  M00S00449.fsecmds ---|    IF LENGTH(LIN) LS RMARGIN AND CURRENT LS REGLINE[RNGBOTREG]-1 THEN
00550  M00S00450.fsecmds ---|      BEGIN                   # TRY TO ADD WORDS FROM NEXT  #
00551  M00S00451.fsecmds ---|      COPYLIN(LIN,TTYLIN);   # TTYLIN = CURRENT LINE       #
00552  M00S00452.fsecmds ---|      FWDZ;                  # READ UP NEXT LINE #
Line S00453 Modification History
M01 (Removed by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00553  M01S00453.ns2411  ---|      IF LENGTH(LIN) EQ 0 THEN TEST FILLLOOP;    # NEXT PARAGRAPH    #
Line S00006 Modification History
M01 (Added by) ns2411
Seq #  *Modification Id* Act 
----------------------------+
00554  M01S00006.ns2411  +++|      IF NOTEXT THEN TEST FILLLOOP;  # NEXT PARAGRAPH #
00555  M00S00454.fsecmds +++|      TMP1=0;
00556  M00S00455.fsecmds +++|      GETCHAR(LINE,0,TMP2);
00557  M00S00456.fsecmds +++|      WHYLE TMP2 EQ CBLANK DO
00558  M00S00457.fsecmds +++|        BEGIN                 # SPAN LEADING BLANKS         #
00559  M00S00458.fsecmds +++|        TMP1=TMP1+1;
00560  M00S00459.fsecmds +++|        GETCHAR(LINE,TMP1,TMP2);
00561  M00S00460.fsecmds +++|        END
00562  M00S00461.fsecmds +++|      TMP3=TMP1;             # KEEP START OF WORD          #
00563  M00S00462.fsecmds +++|      WHYLE TMP2 NQ CBLANK AND TMP2 NQ CENDLINE DO
00564  M00S00463.fsecmds +++|        BEGIN                 # SPAN WORD         #
00565  M00S00464.fsecmds +++|        TMP1=TMP1+1;
00566  M00S00465.fsecmds +++|        GETCHAR(LINE,TMP1,TMP2);
00567  M00S00466.fsecmds +++|        END
00568  M00S00467.fsecmds +++|      TMP4=LENGTH(TTYLIN);
00569  M00S00468.fsecmds +++|      GETCHAR(TTYLINE,TMP4-1,TMP5);  # DETERMINE SPACING #
Line S00469 Modification History
M01 (Removed by) fsecm6
Seq #  *Modification Id* Act 
----------------------------+
00570  M01S00469.fsecm6  ---|      IF TMP5 EQ CPERIOD OR TMP5 EQ CEXCLAM OR TMP5 EQ CCOLON
00571  M01S00470.fsecm6  ---|        OR TMP5 EQ CQUESTION THEN TMP5=2;
Line S00003 Modification History
M01 (Added by) fsecm6
Seq #  *Modification Id* Act 
----------------------------+
00572  M01S00003.fsecm6  +++|      IF TMP5 EQ CPERIOD OR TMP5 EQ CEXCLAM OR TMP5 EQ CQUESTION
00573  M01S00004.fsecm6  +++|        OR TMP5 EQ XLTDSPINT[CCOLON] THEN TMP5=2;
00574  M00S00471.fsecmds +++|      ELSE TMP5=1;
00575  M00S00472.fsecmds +++|      # ADD WORD IF ROOM FOR OLD LINE, BLANKS, AND WORD #
00576  M00S00473.fsecmds +++|      IF (LENGTH(TTYLIN)) + (TMP5) + (TMP1-TMP3-1) LQ RMARGIN THEN
00577  M00S00474.fsecmds +++|        BEGIN                 # CAN ADD ONE WORD  #
00578  M00S00475.fsecmds +++|        FOR TMP2=1 STEP 1 UNTIL TMP5 DO          # ADD 1 OR 2 BLANK  #
00579  M00S00476.fsecmds +++|          BEGIN
00580  M00S00477.fsecmds +++|          SETCHAR(TTYLINE,TMP4,CBLANK);
00581  M00S00478.fsecmds +++|          TMP4=TMP4+1;
00582  M00S00479.fsecmds +++|          END
00583  M00S00480.fsecmds +++|        FOR TMP2=TMP3 STEP 1 UNTIL TMP1-1 DO     # ADD ONE WORD      #
00584  M00S00481.fsecmds +++|          BEGIN
00585  M00S00482.fsecmds +++|          GETCHAR(LINE,TMP2,TMP5);
00586  M00S00483.fsecmds +++|          SETCHAR(TTYLINE,TMP4,TMP5);
00587  M00S00484.fsecmds +++|          TMP4=TMP4+1;
00588  M00S00485.fsecmds +++|          END
00589  M00S00486.fsecmds +++|        SETCHAR(TTYLINE,TMP4,CENDLINE);
00590  M00S00487.fsecmds +++|        BAKZ;                # RETURN TO CURRENT LINE      #
00591  M00S00488.fsecmds +++|        COPYLIN(TTYLIN,LIN);
00592  M00S00489.fsecmds +++|        TRIMPAD;
00593  M00S00490.fsecmds +++|        REPX;                # SAVE ENLARGED LINE          #
00594  M00S00491.fsecmds +++|        FWDZ;                # EXTRACT FROM NEXT LINE      #
00595  M00S00492.fsecmds +++|        GETCHAR(LINE,TMP1,TMP2);
00596  M00S00493.fsecmds +++|        WHYLE TMP2 EQ CBLANK DO        # KILL LEADER, WORD, TRAILER  #
00597  M00S00494.fsecmds +++|          BEGIN
00598  M00S00495.fsecmds +++|          TMP1=TMP1+1;
00599  M00S00496.fsecmds +++|          GETCHAR(LINE,TMP1,TMP2);
00600  M00S00497.fsecmds +++|          END
00601  M00S00498.fsecmds +++|        LSHIFT(LIN,TMP1,TMP1);
00602  M00S00499.fsecmds +++|        TRIMPAD;
00603  M00S00500.fsecmds +++|        IF LENGTH(LIN) EQ 0 THEN DELX; # DEL AND BACKUP IF EMPTIED   #
00604  M00S00501.fsecmds +++|        ELSE                 # UPDATE IF STILL EXIST       #
00605  M00S00502.fsecmds +++|          BEGIN
00606  M00S00503.fsecmds +++|          REPX;              # UPDATE REMAINDER OF NEXT LINE         #
00607  M00S00504.fsecmds +++|          BAKZ;              # TO ORIG TO TRY ANOTHER WORD #
00608  M00S00505.fsecmds +++|          END
00609  M00S00506.fsecmds +++|        END
00610  M00S00507.fsecmds +++|      # NOTE - IF NO-OP-ED, WE ARE ALREADY ADVANCED ONE LINE         #
Line S00005 Modification History
M01 (Added by) ns2503
Seq #  *Modification Id* Act 
----------------------------+
00611  M01S00005.ns2503  +++|      ELSE IF RIGHTJUST[0] THEN GOTO JUSTIFY;
00612  M00S00508.fsecmds +++|      TEST FILLLOOP;
00613  M00S00509.fsecmds +++|      END
00614  M00S00510.fsecmds +++|
00615  M01S00006.ns2503  +++|  JUSTIFY:                           # ALIGN WORDS TO RIGHT MARGIN #
00616  M01S00007.ns2503  +++|      BAKZ;
00617  M01S00008.ns2503  +++|      COPYLIN(LIN,TTYLIN);
00618  M01S00009.ns2503  +++|      TMP2 = 0;                      # NUMBER OF WORDS/BLANKS ADDED #
00619  M01S00010.ns2503  +++|      TMP1 = RMARGIN - LENGTH(TTYLIN);
00620  M01S00011.ns2503  +++|      FOR TMP3 = LMARGIN STEP 1 UNTIL LENGTH(TTYLIN) DO
00621  M01S00012.ns2503  +++|         BEGIN
00622  M01S00013.ns2503  +++|         GETCHAR(TTYLINE,TMP3,TMP5);
00623  M01S00014.ns2503  +++|         IF TMP5 EQ CBLANK THEN
00624  M01S00015.ns2503  +++|           TMP2 = TMP2 + 1;
00625  M01S00016.ns2503  +++|         END
Line S00002 Modification History
M01 (Added by) fsecm3
Seq #  *Modification Id* Act 
----------------------------+
00626  M01S00002.fsecm3  +++|      IF TMP2 EQ 0 THEN
00627  M01S00003.fsecm3  +++|        BEGIN                        # IF NO SPACES DO NOT JUSTIFY #
00628  M01S00004.fsecm3  +++|        FWDZ;
00629  M01S00005.fsecm3  +++|        TEST FILLLOOP;
00630  M01S00006.fsecm3  +++|        END
Line S00017 Modification History
M01 (Added by) ns2503
Seq #  *Modification Id* Act 
----------------------------+
00631  M01S00017.ns2503  +++|      TMP3 = TMP1/TMP2;              # COMPUTE NUMBER OF BLANKS #
00632  M01S00018.ns2503  +++|      TMP4 = TMP1-TMP2*TMP3;         # NUMBER TIMES INSERTED #
00633  M01S00019.ns2503  +++|      LEFTRIGHT = NOT LEFTRIGHT;
00634  M01S00020.ns2503  +++|      FOR TMP5 = LMARGIN STEP 1 UNTIL RMARGIN DO
00635  M01S00021.ns2503  +++|        BEGIN
00636  M01S00022.ns2503  +++|        SETCHAR(LINE,TMP5,CBLANK);
00637  M01S00023.ns2503  +++|        END
00638  M01S00024.ns2503  +++|      IF LEFTRIGHT THEN
00639  M01S00025.ns2503  +++|        BEGIN                        # IF FROM LEFT TO RIGHT #
00640  M01S00026.ns2503  +++|        TMP6 = LMARGIN;
00641  M01S00027.ns2503  +++|        FOR TMP5 = LMARGIN STEP 1 UNTIL LENGTH(TTYLIN)-1 DO
00642  M01S00028.ns2503  +++|          BEGIN
00643  M01S00029.ns2503  +++|          GETCHAR(TTYLINE,TMP5,TMP2);
00644  M01S00030.ns2503  +++|          SETCHAR(LINE,TMP6,TMP2);
00645  M01S00031.ns2503  +++|          IF TMP2 EQ CBLANK AND TMP1 NQ 0 THEN
00646  M01S00032.ns2503  +++|            BEGIN
00647  M01S00033.ns2503  +++|            IF TMP4 EQ 0 THEN TMP3 = TMP3 - 1;
00648  M01S00034.ns2503  +++|            TMP6 = TMP6 + TMP3 + 1;
00649  M01S00035.ns2503  +++|            TMP4 = TMP4 - 1;
00650  M01S00036.ns2503  +++|            TMP1 = TMP1 - TMP3;
00651  M01S00037.ns2503  +++|            END
00652  M01S00038.ns2503  +++|          TMP6 = TMP6 + 1;
00653  M01S00039.ns2503  +++|          END
00654  M01S00040.ns2503  +++|        END
00655  M01S00041.ns2503  +++|      ELSE
00656  M01S00042.ns2503  +++|        BEGIN                        # JUSTIFY FROM RIGHT TO LEFT #
00657  M01S00043.ns2503  +++|        TMP6 = RMARGIN - 1;
00658  M01S00044.ns2503  +++|        FOR TMP5 = LENGTH(TTYLIN)-1 STEP -1 UNTIL LMARGIN DO
00659  M01S00045.ns2503  +++|          BEGIN
00660  M01S00046.ns2503  +++|          GETCHAR(TTYLINE,TMP5,TMP2);
00661  M01S00047.ns2503  +++|          SETCHAR(LINE,TMP6,TMP2);
00662  M01S00048.ns2503  +++|          IF TMP2 EQ CBLANK AND TMP1 NQ 0 THEN
00663  M01S00049.ns2503  +++|            BEGIN
00664  M01S00050.ns2503  +++|            IF TMP4 EQ 0 THEN TMP3 = TMP3 - 1;
00665  M01S00051.ns2503  +++|            TMP6 = TMP6 - TMP3 - 1;
00666  M01S00052.ns2503  +++|            TMP4 = TMP4 - 1;
00667  M01S00053.ns2503  +++|            TMP1 = TMP1 - TMP3;
00668  M01S00054.ns2503  +++|            END
00669  M01S00055.ns2503  +++|          TMP6 = TMP6 - 1;
00670  M01S00056.ns2503  +++|          END
00671  M01S00057.ns2503  +++|        END
00672  M01S00058.ns2503  +++|      SETCHAR(LINE,RMARGIN,CENDLINE);
00673  M01S00059.ns2503  +++|      REPX;
00674  M01S00060.ns2503  +++|      FWDZ;
00675  M01S00061.ns2503  +++|
00676  M00S00511.fsecmds +++|    END                       # OF LOOP #
00677  M00S00512.fsecmds +++|
00678  M00S00513.fsecmds +++|  IF SCREENMODE THEN POSZ(REGLINE[RNGTOPREG]+1);
00679  M00S00514.fsecmds +++|  ELSE
00680  M00S00515.fsecmds +++|    BEGIN
00681  M00S00516.fsecmds +++|    LINPTR1=REGLINE[RNGTOPREG]+1;
00682  M00S00517.fsecmds +++|    LINPTR2=REGLINE[RNGBOTREG]-1;
00683  M00S00518.fsecmds +++|    LIMIT=LARGENUM;  EXECNDX=EXECST"TYPE";
00684  M00S00519.fsecmds +++|    DORANGE;
00685  M00S00520.fsecmds +++|    END
00686  M00S00521.fsecmds +++|
00687  M00S00522.fsecmds +++|  END                         # OF DOFILL         #
00688  M00S00523.fsecmds +++|PAGE                         # MAIN CODE FOR FSECMDS        #
00689  M00S00524.fsecmds +++|
00690  M00S00525.fsecmds +++|
00691  M00S00526.fsecmds +++|PROC SNGLMOV;
00692  M00S00527.fsecmds +++|  BEGIN
00693  M00S00528.fsecmds +++|#
00694  M00S00529.fsecmds +++|**        SNGLMOV - COMMAND PROCESSOR FOR COPY AND MOVE.
00695  M00S00530.fsecmds +++|*
00696  M00S00531.fsecmds +++|*         ENTRY  COMMAND PROCESSOR HAS RECOGNIZED VERB.
00697  M00S00532.fsecmds +++|*                TOKEN ADVANCED BUT NO OTHER SCANNING DONE.
00698  M00S00533.fsecmds +++|*                TOKENTYPE, SCANPOS, TOKENPOS, ETC - AS ABOVE.
00699  M00S00534.fsecmds +++|*                CURFILE, CURSPLIT, CURRENT - DEFAULT ADDRESS.
00700  M00S00535.fsecmds +++|*                CHARRANGE - CHARACTER OR LINE RANGE BOUNDS.
00701  M00S00536.fsecmds +++|*                SCREENMODE - FINAL POSITIONING/PRINTING.
00702  M00S00537.fsecmds +++|*                WIDTH - THIS SETTING WILL BE IGNORED.
00703  M00S00538.fsecmds +++|*                DONTPRINT - LINE MODE ECHO OF RESULTS.
00704  M00S00539.fsecmds +++|*                BLANKS - THIS SETTING WILL BE IGNORED.
00705  M00S00540.fsecmds +++|*
00706  M00S00541.fsecmds +++|*         EXIT   CURFILE, CURRENT - FINAL RESTING PLACE.
00707  M00S00542.fsecmds +++|*                (ANOTHER FILE MAY HAVE BEEN OPENED)
00708  M00S00543.fsecmds +++|*                SMALLFIELD - TRUE.
00709  M00S00544.fsecmds +++|*
00710  M00S00545.fsecmds +++|*         CALLS  FLDLEN, SCANNER, FITNUM, MAKEFET, REWIND, RETERN,
00711  M00S00546.fsecmds +++|*                PUSH, DORANGE, SPLICE, POP, WRITER, READ, TABFN,
00712  M00S00547.fsecmds +++|*                DOSPLIT, BAKZ, XFRCMIN, SQUELCH, TRIMPAD, SETLNUM,
00713  M00S00548.fsecmds +++|*                INSX, DOJOIN, POSZ, VFYLOCK.
00714  M00S00549.fsecmds +++|*
00715  M00S00550.fsecmds +++|*         USES   LINPTR1-3, CHRPTR1-3, FILPTR1-3, LINNUM1-3,
00716  M00S00551.fsecmds +++|*                LINCTR, LIMIT, MOVEFET, FILEBUF.
00717  M00S00552.fsecmds +++|*
00718  M00S00553.fsecmds +++|*         NOTE   USES THEN RESTORES - LINENO.
00719  M00S00554.fsecmds +++|#
00720  M00S00555.fsecmds +++|  ITEM LEN;
00721  M00S00556.fsecmds +++|
00722  M00S00557.fsecmds +++|  SCANNER;
00723  M00S00558.fsecmds +++|  IF FIELDTARGET NQ 0 THEN CHRPTR3=NUMWIDBLK+TABFN(FIELDTARGET-1);
00724  M00S00559.fsecmds +++|
Line S00560 Modification History
M01 (Removed by) ns2470
Seq #  *Modification Id* Act 
----------------------------+
00725  M01S00560.ns2470  ---|  IF EXECNDX EQ EXECST"MOVE" THEN VFYLOCK;
Line S00001 Modification History
M01 (Added by) ns2470
Seq #  *Modification Id* Act 
----------------------------+
00726  M01S00001.ns2470  +++|  IF EXECNDX EQ EXECST"MOVE" THEN
00727  M01S00002.ns2470  +++|    BEGIN                            # IF MOVE COMMAND #
00728  M01S00003.ns2470  +++|    VFYLOCK;
00729  M01S00004.ns2470  +++|    IF SCANMARK THEN KILLMARKS = TRUE;
00730  M01S00005.ns2470  +++|    END
00731  M00S00561.fsecmds +++|  CURFILE = = FILPTR3;
00732  M00S00562.fsecmds +++|  VFYLOCK;
00733  M00S00563.fsecmds +++|  CURFILE = = FILPTR3;
00734  M00S00564.fsecmds +++|
00735  M00S00565.fsecmds +++|  IF NUMBERED[FILPTR3] NQ 0 AND CHARRANGE AND LINPTR1 NQ LINPTR2
00736  M00S00566.fsecmds +++|    AND LIMIT GR 1
00737  M00S00567.fsecmds +++|    THEN ERRJUMP("FILE MUST NOT CONTAIN SEQUENCE NUMBERS$");
00738  M00S00568.fsecmds +++|
00739  M00S00569.fsecmds +++|  CURFILE = = FILPTR3;
00740  M00S00570.fsecmds +++|  POSZ(LINPTR3);             # GET FAMILIAR WITH TARGET    #
00741  M00S00571.fsecmds +++|  FITNUM;                    # ASSURE NUMBERED MODE IS OK  #
00742  M00S00572.fsecmds +++|  CURFILE = = FILPTR3;
00743  M00S00573.fsecmds +++|
00744  M00S00574.fsecmds +++|  IF CHARRANGE AND LINPTR1 EQ LINPTR2 AND LINPTR1 EQ LINPTR3 THEN
00745  M00S00575.fsecmds +++|    BEGIN                            # PHRASE WITHIN LINE #
00746  M00S00576.fsecmds +++|    POSZ(LINPTR1);
Line S00002 Modification History
M01 (Added by) ns2226
Seq #  *Modification Id* Act 
----------------------------+
00747  M01S00002.ns2226  +++|    IF LENGTH(LIN) EQ 0 THEN
00748  M01S00003.ns2226  +++|      BEGIN
00749  M01S00004.ns2226  +++|      SETCHAR(LINE,0,CBLANK);
00750  M01S00005.ns2226  +++|      SETCHAR(LINE,1,CENDLINE);
00751  M01S00006.ns2226  +++|      END
00752  M00S00577.fsecmds +++|    COPYLIN(LIN,TTYLIN);
00753  M01S00007.ns2226  +++|    CHRPTR1=MIN(CHRPTR1,LENGTH(LIN)-1);
00754  M01S00008.ns2226  +++|    CHRPTR2=MIN(CHRPTR2,LENGTH(LIN)-1);
00755  M00S00578.fsecmds +++|    LEN=CHRPTR2-CHRPTR1+1;
00756  M00S00579.fsecmds +++|    RSHIFT(LIN,CHRPTR3,LEN);
00757  M00S00580.fsecmds +++|    FOR LINCTR=0 STEP 1 UNTIL LEN-1 DO
00758  M00S00581.fsecmds +++|      BEGIN
00759  M00S00582.fsecmds +++|      GETCHAR(TTYLINE,CHRPTR1+LINCTR,LINPTR2);
00760  M00S00583.fsecmds +++|      IF CHRPTR3+LINCTR LQ BUFCM1
00761  M00S00584.fsecmds +++|        THEN SETCHAR(LINE,CHRPTR3+LINCTR,LINPTR2);
00762  M00S00585.fsecmds +++|      END
Line S00001 Modification History
M01 (Added by) ns2174
Seq #  *Modification Id* Act 
----------------------------+
00763  M01S00001.ns2174  +++|
00764  M01S00002.ns2174  +++|    # NO TRUNCATION AT EDITFIELD HERE SINCE THIS IS CONSIDERED TO #
00765  M01S00003.ns2174  +++|    # BE AN IN-PLACE ALTERATION RATHER THAN A CREATION OF NEW TEXT. #
00766  M01S00004.ns2174  +++|
00767  M00S00586.fsecmds +++|    SETCHAR(LINE,BUFCHAR,CENDLINE);
00768  M00S00587.fsecmds +++|    NEWCURSOR=CHRPTR3;
00769  M00S00588.fsecmds +++|    IF FILCMDNDX EQ FILCMDST"MOVE" THEN
00770  M00S00589.fsecmds +++|      BEGIN
00771  M00S00590.fsecmds +++|      IF CHRPTR3 LS CHRPTR1 THEN CHRPTR2=CHRPTR2+LEN;
00772  M00S00591.fsecmds +++|      ELSE IF CHRPTR3 GR CHRPTR2 THEN NEWCURSOR=CHRPTR3-LEN;
00773  M00S00592.fsecmds +++|      ELSE NEWCURSOR=CHRPTR1;
00774  M00S00593.fsecmds +++|      LSHIFT(LIN,CHRPTR2+1,LEN);
00775  M00S00594.fsecmds +++|      END
00776  M00S00595.fsecmds +++|    TRIMPAD;
00777  M00S00596.fsecmds +++|    REPX;
Line S00001 Modification History
M01 (Added by) fsecm5
Seq #  *Modification Id* Act 
----------------------------+
00778  M01S00001.fsecm5  +++|    IF FILCMDNDX EQ FILCMDST"COPY" THEN
00779  M01S00002.fsecm5  +++|      BEGIN                          # IF MARK MAY NEED TO BE MOVED #
00780  M01S00003.fsecm5  +++|      IF CHRPTR3 LQ MRKCHAR[1] THEN
00781  M01S00004.fsecm5  +++|        BEGIN                        # IF SECOND MARK MUST BE MOVED #
00782  M01S00005.fsecm5  +++|        MRKCHAR[1] = MRKCHAR[1]+LEN;
00783  M01S00006.fsecm5  +++|        IF CHRPTR3 LQ MRKCHAR[0] THEN
00784  M01S00007.fsecm5  +++|          BEGIN                      # IF FIRST MARK MUST BE MOVED #
00785  M01S00008.fsecm5  +++|          MRKCHAR[0] = MRKCHAR[0]+LEN;
00786  M01S00009.fsecm5  +++|          END
00787  M01S00010.fsecm5  +++|        END
00788  M01S00011.fsecm5  +++|      END
00789  M00S00597.fsecmds +++|    IF NOT (SCREENMODE OR DONTPRINT) THEN PRINTL;
00790  M00S00598.fsecmds +++|    RETURN;
00791  M00S00599.fsecmds +++|    END
00792  M00S00600.fsecmds +++|
00793  M00S00601.fsecmds +++|  FLDLEN(LOC(MAXADDR)+4);
00794  M00S00602.fsecmds +++|  SMALLFIELD=FALSE;
00795  M00S00603.fsecmds +++|
00796  M00S00604.fsecmds +++|  MAKEFET(MOVEFET,"ZZZMOVE",FILEBUF,INIDSKSIZ);
00797  M00S00605.fsecmds +++|  REWIND(MOVEFET,1);
00798  M00S00606.fsecmds +++|
00799  M00S00607.fsecmds +++|  SAVLINENO=LINENO;
00800  M00S00608.fsecmds +++|  PUSH;                      # SAVE TARGET ADDRESS         #
00801  M00S00609.fsecmds +++|
00802  M00S00610.fsecmds +++|  IF FILCMDNDX EQ FILCMDST"MOVE" AND CHARRANGE THEN
00803  M00S00611.fsecmds +++|    BEGIN
00804  M00S00612.fsecmds +++|    IF LINPTR2 EQ LINPTR3
00805  M00S00613.fsecmds +++|      THEN CHRPTR3=MAX(0,CHRPTR3-(CHRPTR2-CHRPTR1+1));
00806  M00S00614.fsecmds +++|    DORANGE;                         # COPY RANGE TO ZZZMOVE #
00807  M00S00615.fsecmds +++|    IF FOUND THEN SPLICE;            # CLOSE BOUNDARIES TOGETHER #
00808  M00S00616.fsecmds +++|    END
00809  M00S00617.fsecmds +++|  ELSE DORANGE;                      # COPY RANGE TO ZZZMOVE #
00810  M00S00618.fsecmds +++|
00811  M00S00619.fsecmds +++|  POP;                       # TO TARGET AREA              #
00812  M00S00620.fsecmds +++|  LINENO=SAVLINENO;
00813  M00S00621.fsecmds +++|
00814  M00S00622.fsecmds +++|  WRITER(MOVEFET,1);
00815  M00S00623.fsecmds +++|  REWIND(MOVEFET,1);
00816  M00S00624.fsecmds +++|  IF NOT FOUND THEN RETURN;
00817  M00S00625.fsecmds +++|  KILLUPLOW=FALSE;
00818  M00S00626.fsecmds +++|  IF CURFILE NQ FILPTR3 AND ASCII[CURFILE] GQ 2 AND
00819  M00S00627.fsecmds +++|    ASCII[FILPTR3] LQ 1 THEN
00820  M00S00628.fsecmds +++|    BEGIN
00821  M00S00629.fsecmds +++|    # IF CHARACTER SETS ARE INCOMPATIBLE, CHANGE CHARSET OF EMPTY #
00822  M00S00630.fsecmds +++|    # TARGET FILE, OR FLAG CASE SUPPRESSION #
00823  M00S00631.fsecmds +++|    IF BOTF(FILPTR3)-TOPF(FILPTR3)-1 EQ THISEXTEND
00824  M00S00632.fsecmds +++|      AND ASCII[FILPTR3] EQ 0
00825  M00S00633.fsecmds +++|      THEN ASCII[FILPTR3]=ASCII[CURFILE];
00826  M00S00634.fsecmds +++|    ELSE KILLUPLOW=TRUE;
00827  M00S00635.fsecmds +++|    END
00828  M00S00636.fsecmds +++|  CURFILE=FILPTR3;
00829  M00S00637.fsecmds +++|  READ(MOVEFET,0);           # START FEEDING BUFFER        #
00830  M00S00638.fsecmds +++|
00831  M00S00639.fsecmds +++|  NUMWIDBLK=0;
00832  M00S00640.fsecmds +++|  IF NUMBERED[CURFILE] NQ 0 THEN NUMWIDBLK=NUMWIDTH+BLANKS;
00833  M00S00641.fsecmds +++|  SAVBLANKS=BLANKS;
00834  M00S00642.fsecmds +++|  BLANKS=0;
00835  M00S00643.fsecmds +++|  LINPTR3=CURRENT+1;         # TAKE NOTE OF RELOCATED TARGET         #
Line S00001 Modification History
M01 (Added by) fsecm4
Seq #  *Modification Id* Act 
----------------------------+
00836  M01S00001.fsecm4  +++|  IF BOTF(CURFILE)-TOPF(CURFILE)-1 EQ THISEXTEND THEN
00837  M01S00002.fsecm4  +++|    BEGIN                    # IF TARGET FILE IS EMPTY #
00838  M01S00003.fsecm4  +++|    CHARRANGE = FALSE;
00839  M01S00004.fsecm4  +++|    FIELDTARGET = 0;
00840  M01S00005.fsecm4  +++|    END
00841  M00S00644.fsecmds +++|  IF CHARRANGE OR FIELDTARGET NQ 0 THEN
Line S00645 Modification History
M01 (Removed by) ns2226
Seq #  *Modification Id* Act 
----------------------------+
00842  M01S00645.ns2226  ---|    BEGIN                     # FIRST SEGMENT INTO MIDDLE OF LINE     #
00843  M01S00646.ns2226  ---|    DOSPLIT;                 # SPLIT TARGET AT CHRPTR3     #
Line S00009 Modification History
M01 (Added by) ns2226
Seq #  *Modification Id* Act 
----------------------------+
00844  M01S00009.ns2226  +++|    BEGIN                    # FIRST SEGMENT INTO MIDDLE OF LINE     #
00845  M01S00010.ns2226  +++|    DOSPLIT(0);              # SPLIT TARGET AT CHRPTR3     #
00846  M00S00647.fsecmds +++|    BAKZ;                    # INSERTION AFTER FIRST HALF  #
00847  M00S00648.fsecmds +++|    LINPTR3=CURRENT;
00848  M00S00649.fsecmds +++|    END
00849  M00S00650.fsecmds +++|  FOR LINCTR=1 STEP 1 WHILE LINCTR LQ LCOUNT
00850  M00S00651.fsecmds +++|    AND NOT (CANINTER AND USRBRK NQ 0) DO
00851  M00S00652.fsecmds +++|    BEGIN
00852  M00S00653.fsecmds +++|    IF USRBRK NQ 0 THEN DONTPRINT=TRUE;
00853  M00S00654.fsecmds +++|    XFRCMIN;
00854  M00S00655.fsecmds +++|    IF KILLUPLOW THEN SQUELCH(LIN);
Line S00005 Modification History
M01 (Added by) ns2174
M02 (Removed by) ns2226
Seq #  *Modification Id* Act 
----------------------------+
00855  M02S00005.ns2226  ---|    SETCHAR(LINE,EDITFIELD,CENDLINE);  # CLEAR TO END OF LINE #
Line S00656 Modification History
M01 (Removed by) ns2226
Seq #  *Modification Id* Act 
----------------------------+
00856  M01S00656.ns2226  ---|    TRIMPAD;
Line S00011 Modification History
M01 (Added by) ns2226
Seq #  *Modification Id* Act 
----------------------------+
00857  M01S00011.ns2226  +++|    IF EDITFIELD LS LENGTH(LIN) THEN
00858  M01S00012.ns2226  +++|      BEGIN
00859  M01S00013.ns2226  +++|      SETCHAR(LINE,EDITFIELD,CENDLINE);  # CLEAR TO END OF LINE #
00860  M01S00014.ns2226  +++|      TRIMPAD;
00861  M01S00015.ns2226  +++|      END
00862  M00S00657.fsecmds +++|    LINENO=LINENO+INCR;
00863  M00S00658.fsecmds +++|    SETLNUM;
00864  M00S00659.fsecmds +++|    INSX;
00865  M00S00660.fsecmds +++|    IF NOT (DONTPRINT OR SCREENMODE) THEN PRINTL;
00866  M00S00661.fsecmds +++|    END
00867  M00S00662.fsecmds +++|  IF CHARRANGE OR FIELDTARGET NQ 0 THEN
00868  M00S00663.fsecmds +++|    BEGIN
Line S00012 Modification History
M01 (Added by) fsecm5
Seq #  *Modification Id* Act 
----------------------------+
00869  M01S00012.fsecm5  +++|    IF CHARRANGE AND FILCMDNDX EQ FILCMDST"COPY" THEN
00870  M01S00013.fsecm5  +++|      BEGIN                  # IF MARK MAY NEED TO BE MOVED #
00871  M01S00014.fsecm5  +++|      IF LINPTR3 EQ REGLINE[MARKREG]
00872  M01S00015.fsecm5  +++|        AND CHRPTR3 LQ MRKCHAR[0] THEN
00873  M01S00016.fsecm5  +++|        BEGIN                # IF FIRST MARK MUST BE MOVED #
00874  M01S00017.fsecm5  +++|        REGLINE[MARKREG] = CURRENT;
00875  M01S00018.fsecm5  +++|        MRKCHAR[0] = MRKCHAR[0] - CHRPTR3 + LENGTH(LIN);
00876  M01S00019.fsecm5  +++|        END
00877  M01S00020.fsecm5  +++|      ELSE IF LINPTR3 EQ REGLINE[MARKREG+1]
00878  M01S00021.fsecm5  +++|        AND CHRPTR3 LQ MRKCHAR[1] THEN
00879  M01S00022.fsecm5  +++|        BEGIN                # IF SECOND MARK MUST BE MOVED #
00880  M01S00023.fsecm5  +++|        REGLINE[MARKREG+1] = CURRENT;
00881  M01S00024.fsecm5  +++|        MRKCHAR[1] = MRKCHAR[1] - CHRPTR3 + LENGTH(LIN);
00882  M01S00025.fsecm5  +++|        END
00883  M01S00026.fsecm5  +++|      END
00884  M00S00664.fsecmds +++|    CHRPTR3 == ZERO;         # ASSURE NO EXTENSION IN MERGES         #
Line S00665 Modification History
M01 (Removed by) ns2571
Seq #  *Modification Id* Act 
----------------------------+
00885  M01S00665.ns2571  ---|    DOJOIN;                  # MERGE LAST INSERT WITH TRAILER        #
Line S00001 Modification History
M01 (Added by) ns2571
Seq #  *Modification Id* Act 
----------------------------+
00886  M01S00001.ns2571  +++|    DOJOIN(0);               # MERGE LAST INSERT WITH TRAILER        #
00887  M00S00666.fsecmds +++|    CHRPTR3 == ZERO;         # RESTORE TARGET CHARACTER ADDRESS #
00888  M00S00667.fsecmds +++|    PUSH;
00889  M00S00668.fsecmds +++|    POSZ(LINPTR3);
Line S00669 Modification History
M01 (Removed by) ns2571
Seq #  *Modification Id* Act 
----------------------------+
00890  M01S00669.ns2571  ---|    DOJOIN;                  # MERGE LEADER WITH FIRST INSERT        #
Line S00002 Modification History
M01 (Added by) ns2571
Seq #  *Modification Id* Act 
----------------------------+
00891  M01S00002.ns2571  +++|    DOJOIN(0);               # MERGE LEADER WITH FIRST INSERT        #
00892  M00S00670.fsecmds +++|    POP;
Line S00001 Modification History
M01 (Added by) ns2608
Seq #  *Modification Id* Act 
----------------------------+
00893  M01S00001.ns2608  +++|    NEWCURSOR = CHRPTR3;
00894  M00S00671.fsecmds +++|    END
00895  M00S00672.fsecmds +++|  IF SCREENMODE THEN POSZ(LINPTR3);  # POSITION TO TOP OF BLOCK      #
00896  M00S00673.fsecmds +++|  BLANKS=SAVBLANKS;
00897  M00S00674.fsecmds +++|
00898  M00S00675.fsecmds +++|  RETERN(MOVEFET,1);
00899  M00S00676.fsecmds +++|  FLDLEN(LOC(WORKBUF)+DSKSIZ+4);
00900  M00S00677.fsecmds +++|  SMALLFIELD=TRUE;
00901  M00S00678.fsecmds +++|
00902  M00S00679.fsecmds +++|  END            # OF SNGLMOV  #
00903  M00S00680.fsecmds +++|
00904  M00S00681.fsecmds +++|
00905  M00S00682.fsecmds +++|PROC HELPCMD;
00906  M00S00683.fsecmds +++|  BEGIN
00907  M00S00684.fsecmds +++|#
00908  M00S00685.fsecmds +++|**        HELPCMD - COMMAND PROCESSOR FOR HELP FACILITY.
00909  M00S00686.fsecmds +++|*
00910  M00S00687.fsecmds +++|*         ENTRY  PROCESSNDX - INDICATES HELP OR TEACH COMMAND.
00911  M00S00688.fsecmds +++|*                NO SCANNING BEYOND COMMAND VERB YET.
00912  M00S00689.fsecmds +++|*                TOKEN CALLED TO PREPARE NEXT SCAN.
00913  M00S00690.fsecmds +++|*                SCANPOS, TOKENPOS, TOKENTYPE, ETC - AS ABOVE.
00914  M00S00691.fsecmds +++|*                SCREENMODE - PRINTING/POSITIONING MODE.
00915  M00S00692.fsecmds +++|*
00916  M00S00693.fsecmds +++|*         EXIT   HELP FILE BECOMES CURRENT FILE.
00917  M00S00694.fsecmds +++|*                CURRENT, CURFILE, CURSPLIT - AS ABOVE.
00918  M00S00695.fsecmds +++|*
00919  M00S00696.fsecmds +++|*         MACROS SETCHAR.
00920  M00S00697.fsecmds +++|*
00921  M00S00698.fsecmds +++|*         CALLS  MAKEFET, GET, ATTACH, OPENFILE, SCNEQNAME, SCNEOC,
00922  M00S00699.fsecmds +++|*                DORANGE, POSZ, SETUPSCREEN, HALT.
00923  M00S00700.fsecmds +++|*
00924  M00S00701.fsecmds +++|*         USES   LINPTR1-3, LINNUM1-3, FILPTR1-3, CHRPTR1-3,
00925  M00S00702.fsecmds +++|*                PFMFET, FILEBUF, READNAM, FILNUM, CHARPARM, GETPARM,
00926  M00S00703.fsecmds +++|*                LOCSTRING1, EXECNDX, WORDSEARCH, ELLIPSIS, DONTPRINT,
00927  M00S00704.fsecmds +++|*                UPPERSEARCH, FOUND.
00928  M00S00705.fsecmds +++|#
00929  M00S00706.fsecmds +++|
00930  M00S00707.fsecmds +++|  READNAM="FSEHELP";
00931  M00S00708.fsecmds +++|  IF PROCESSNDX EQ KEYST"TCMD" THEN READNAM="FSTEACH";
00932  M00S00709.fsecmds +++|
00933  M00S00710.fsecmds +++|  IF NOT ASSGNFILE(READNAM) THEN
00934  M00S00711.fsecmds +++|    BEGIN
00935  M00S00712.fsecmds +++|    IF READNAM EQ "FSEHELP" THEN
00936  M00S00713.fsecmds +++|      BEGIN
00937  M00S00714.fsecmds +++|      PF("ATTACH",READNAM,READNAM,"RC",PFMERROR,"M","R","UN",
Line S00715 Modification History
M01 (Removed by) ns2189
Seq #  *Modification Id* Act 
----------------------------+
00938  M01S00715.ns2189  ---|        HELPUSERNUM,"NA","YES",0);
Line S00001 Modification History
M01 (Added by) ns2189
M02 (Removed by) ns2247
Seq #  *Modification Id* Act 
----------------------------+
00939  M02S00001.ns2247  ---|        HELPUSERNUM,"NA","YES","SR","NF",0);
Line S00001 Modification History
M01 (Added by) ns2247
Seq #  *Modification Id* Act 
----------------------------+
00940  M01S00001.ns2247  +++|        HELPUSERNUM,"NA","YES","SR","NF","PN","0",0);
00941  M00S00716.fsecmds +++|      END
00942  M00S00717.fsecmds +++|    ELSE
00943  M00S00718.fsecmds +++|      BEGIN
Line S00719 Modification History
M01 (Removed by) ns2247
Seq #  *Modification Id* Act 
----------------------------+
00944  M01S00719.ns2247  ---|      PF("GET",READNAM,READNAM,"RC",PFMERROR,"UN",HELPUSERNUM,0);
Line S00002 Modification History
M01 (Added by) ns2247
M02 (Removed by) fsecm2
Seq #  *Modification Id* Act 
----------------------------+
00945  M02S00002.fsecm2  ---|      PF("GET",READNAM,READNAM,"RC",PFMERROR,"UN",HELPUSERNUM,
00946  M02S00003.fsecm2  ---|        "PN","0",0);
Line S00001 Modification History
M01 (Added by) fsecm2
Seq #  *Modification Id* Act 
----------------------------+
00947  M01S00001.fsecm2  +++|      C<0,1>READNAM="T";             # LOOK FOR FILE FOR THIS MODEL #
00948  M01S00002.fsecm2  +++|      C<1,6>READNAM=C<0,6>TABMODNAME;
00949  M01S00003.fsecm2  +++|      PF("GET","FSTEACH",READNAM,"RC",PFMERROR,"UN",HELPUSERNUM,
00950  M01S00004.fsecm2  +++|        "PN","0",0);
00951  M01S00005.fsecm2  +++|      READNAM="FSTEACH";
00952  M01S00006.fsecm2  +++|      IF PFMERROR NQ 0 THEN
00953  M01S00007.fsecm2  +++|        BEGIN                        # IF SPECIFIC FILE NOT FOUND #
00954  M01S00008.fsecm2  +++|        PF("GET",READNAM,READNAM,"RC",PFMERROR,"UN",HELPUSERNUM,
00955  M01S00009.fsecm2  +++|          "PN","0",0);
00956  M01S00010.fsecm2  +++|        END
00957  M00S00720.fsecmds +++|      END
00958  M00S00721.fsecmds +++|    END
00959  M00S00722.fsecmds +++|
00960  M00S00723.fsecmds +++|  FILNUM=CURFILE;
00961  M00S00724.fsecmds +++|  IF FILENAM[FILNUM] NQ READNAM THEN
00962  M00S00725.fsecmds +++|    BEGIN
00963  M00S00726.fsecmds +++|    FILNUM=1;
Line S00727 Modification History
M01 (Removed by) ns2391
Seq #  *Modification Id* Act 
----------------------------+
00964  M01S00727.ns2391  ---|    IF SCREENMODE AND PROCESSNDX EQ KEYST"HCMD" THEN FILNUM=2;
Line S00001 Modification History
M01 (Added by) ns2391
Seq #  *Modification Id* Act 
----------------------------+
00965  M01S00001.ns2391  +++|    IF SCREENMODE AND PROCESSNDX EQ KEYST"HCMD" THEN
00966  M01S00002.ns2391  +++|      BEGIN                          # IF SCREEN MODE HELP #
00967  M01S00003.ns2391  +++|      FILNUM = 2;                    # SPLIT SCREEN MODE #
00968  M01S00004.ns2391  +++|      ERRSTRING = "USE 'EDIT' TO UNSPLIT SCREEN$";
00969  M01S00005.ns2391  +++|      END
00970  M01S00006.ns2391  +++|    ELSE
00971  M01S00007.ns2391  +++|      BEGIN                          # LINE MODE OR TEACH #
00972  M01S00008.ns2391  +++|      ERRSTRING = "USE 'EDIT' TO RETURN TO INITIAL FILE$";
00973  M01S00009.ns2391  +++|      END
00974  M00S00728.fsecmds +++|    CHARPARM=2;
00975  M00S00729.fsecmds +++|    GETPARM=0;
00976  M00S00730.fsecmds +++|    OPENFILE;
00977  M00S00731.fsecmds +++|    END
00978  M00S00732.fsecmds +++|  POSZ(TOPF(FILNUM)+1);            # DEFAULT TO TOP OF FILE #
00979  M00S00733.fsecmds +++|  IF SYNTAXCHAR[TOKENCHAR] THEN
00980  M00S00734.fsecmds +++|    BEGIN                   # TOPIC SEARCH RATHER THAN DEFAULT      #
Line S00735 Modification History
M01 (Removed by) ns2503
Seq #  *Modification Id* Act 
----------------------------+
00981  M01S00735.ns2503  ---|    SCNEQNAM(READNAM);
00982  M01S00736.ns2503  ---|    SCNEOC;
00983  M01S00737.ns2503  ---|    SETCHAR(LOCSTR1,0,CLPAREN);
00984  M01S00738.ns2503  ---|    LINPTR2=B<0,6>READNAM;
00985  M01S00739.ns2503  ---|    FOR LINPTR1=0 STEP 1 WHILE LINPTR1 LQ 6 AND
00986  M01S00740.ns2503  ---|      LINPTR2 NQ " " DO
00987  M01S00741.ns2503  ---|      BEGIN
00988  M01S00742.ns2503  ---|      SETCHAR(LOCSTR1,LINPTR1+1,LINPTR2);
00989  M01S00743.ns2503  ---|      LINPTR2=B<6*LINPTR1+6,6>READNAM;
00990  M01S00744.ns2503  ---|      END
00991  M01S00745.ns2503  ---|    SETCHAR(LOCSTR1,LINPTR1+1,CRPAREN);
Line S00062 Modification History
M01 (Added by) ns2503
Seq #  *Modification Id* Act 
----------------------------+
00992  M01S00062.ns2503  +++|    IF TOKENTYPE EQ TYPST"LETTER" THEN
00993  M01S00063.ns2503  +++|      BEGIN                          # IF CHARACTER STRING #
00994  M01S00064.ns2503  +++|      SCNEQNAM(READNAM);
00995  M01S00065.ns2503  +++|      SCNEOC;
00996  M01S00066.ns2503  +++|      SETCHAR(LOCSTR1,0,CLPAREN);
00997  M01S00067.ns2503  +++|      LINPTR2=B<0,6>READNAM;
00998  M01S00068.ns2503  +++|      FOR LINPTR1=0 STEP 1 WHILE LINPTR1 LQ 6 AND
00999  M01S00069.ns2503  +++|        LINPTR2 NQ " " DO
01000  M01S00070.ns2503  +++|        BEGIN
01001  M01S00071.ns2503  +++|        SETCHAR(LOCSTR1,LINPTR1+1,LINPTR2);
01002  M01S00072.ns2503  +++|        LINPTR2=B<6*LINPTR1+6,6>READNAM;
01003  M01S00073.ns2503  +++|        END
01004  M01S00074.ns2503  +++|      SETCHAR(LOCSTR1,LINPTR1+1,CRPAREN);
01005  M01S00075.ns2503  +++|      END
01006  M01S00076.ns2503  +++|    ELSE
01007  M01S00077.ns2503  +++|      BEGIN                          # NOT ALPHABETIC #
01008  M01S00078.ns2503  +++|      LINPTR2 = TOKENCHAR;
01009  M01S00079.ns2503  +++|      SETCHAR(LOCSTR1,0,CLPAREN);
01010  M01S00080.ns2503  +++|      SETCHAR(LOCSTR1,1,LINPTR2);
01011  M01S00081.ns2503  +++|      SETCHAR(LOCSTR1,2,CRPAREN);
01012  M01S00082.ns2503  +++|      LINPTR1 = 1;
01013  M01S00083.ns2503  +++|      TOKEN;
01014  M01S00084.ns2503  +++|      IF SYNTAXCHAR[TOKENCHAR] THEN
01015  M01S00085.ns2503  +++|        ERRJUMP("PLEASE ENTER 'HELP DIRECTIVE'$");
01016  M01S00086.ns2503  +++|      END
01017  M00S00746.fsecmds +++|    SETCHAR(LOCSTR1,LINPTR1+2,CENDLINE);
01018  M00S00747.fsecmds +++|    LOCSTRLEN1=LINPTR1+2;
01019  M00S00748.fsecmds +++|    LINPTR1=CURRENT;
01020  M00S00749.fsecmds +++|    LINPTR3=CURRENT;
01021  M00S00750.fsecmds +++|    LINPTR2=BOTF(FILNUM)-1;
01022  M00S00751.fsecmds +++|    LIMIT=1;
01023  M00S00752.fsecmds +++|    EXECNDX=EXECST"LOCATE";
01024  M00S00753.fsecmds +++|    WORDSEARCH=FALSE;   ELLIPSIS=FALSE;   DONTPRINT=TRUE;
01025  M00S00754.fsecmds +++|    UPPERSEARCH=FALSE;  CHRPTR1=0;  CHRPTR2=BUFCM1;
01026  M00S00755.fsecmds +++|    DORANGE;               # SEARCH FOR (KEYWORD)        #
01027  M00S00756.fsecmds +++|    IF NOT FOUND THEN POSZ(LINPTR3);
01028  M00S00757.fsecmds +++|    FOUND=TRUE;
01029  M00S00758.fsecmds +++|    END
01030  M00S00759.fsecmds +++|  IF NOT SCREENMODE THEN
01031  M00S00760.fsecmds +++|    BEGIN
01032  M00S00761.fsecmds +++|    LINPTR1=CURRENT;
01033  M00S00762.fsecmds +++|    LINPTR2=BOTF(FILNUM)-1;
Line S00763 Modification History
M01 (Removed by) ns2238
Seq #  *Modification Id* Act 
----------------------------+
01034  M01S00763.ns2238  ---|    LIMIT=GROUPSIZ;
Line S00001 Modification History
M01 (Added by) ns2238
Seq #  *Modification Id* Act 
----------------------------+
01035  M01S00001.ns2238  +++|    LIMIT=HELPSIZE;                  # HELP FILE LINES TO DISPLAY #
01036  M00S00764.fsecmds +++|    EXECNDX=EXECST"TYPE";
01037  M00S00765.fsecmds +++|    DONTPRINT=FALSE;
01038  M00S00766.fsecmds +++|    DORANGE;
01039  M00S00767.fsecmds +++|    END
01040  M00S00768.fsecmds +++|  IF FILNUM EQ 2 THEN
01041  M00S00769.fsecmds +++|    BEGIN
01042  M00S00770.fsecmds +++|    IF SPLITFILE[2] NQ 2 THEN SETUPSCREEN(1,2,USRSPLTSZ);
01043  M00S00771.fsecmds +++|    END
01044  M00S00772.fsecmds +++|
01045  M00S00773.fsecmds +++|
01046  M00S00774.fsecmds +++|  END            # OF HELPCMD          #
01047  M00S00775.fsecmds +++|
01048  M00S00776.fsecmds +++|
01049  M00S00777.fsecmds +++|PROC GETSTATUS;
01050  M00S00778.fsecmds +++|  BEGIN
01051  M00S00779.fsecmds +++|#
01052  M00S00780.fsecmds +++|**        GETSTATUS - COMMAND PROCESSOR FOR GET STATUS SUBCOMMAND.
01053  M00S00781.fsecmds +++|*
01054  M00S00782.fsecmds +++|*         ENTRY  COMMAND FULLY SCANNED EXCEPT TERMINATOR VERIFY.
01055  M00S00783.fsecmds +++|*                ONE OR BOTH FILE BRACKETS OPENED SOMEWHERE.
01056  M00S00784.fsecmds +++|*
01057  M00S00785.fsecmds +++|*         EXIT   SCREENMODE SCHEDULED FOR TOTAL REPAINT.
01058  M00S00786.fsecmds +++|*                COMMAND TERMINATOR SCANNED.
01059  M00S00787.fsecmds +++|*                OPEN FILES UPDATED INTO DIRECTORY.  (SIDE EFFECT)
01060  M00S00788.fsecmds +++|*
01061  M00S00789.fsecmds +++|*         CALLS  SCNEOC, BGNDSPLAY, TTSTR, EOLDSPLAY, PUSH,
01062  M00S00790.fsecmds +++|*                PADNAME, CLOSEFILE, POSZ, SCANFDL, TTST, FWDZ, POP,
01063  M00S00791.fsecmds +++|*                TTDEC, TTCHAR, ENDDSPLAY, TABFN.
01064  M00S00792.fsecmds +++|*
01065  M00S00793.fsecmds +++|*         USES   FILNUM, READNAM, LINPTR1, LINCTR.
01066  M00S00794.fsecmds +++|*
01067  M00S00795.fsecmds +++|*         NOTE -
01068  M00S00796.fsecmds +++|*
01069  M00S00797.fsecmds +++|*         THIS BLOCK OF CODE IS SUBJECT TO CERTAIN RESTRICTIONS IN
01070  M00S00798.fsecmds +++|*         ORDER TO DRIVE THE TERMINAL IN BOTH LINE MODE AND SCREEN
01071  M00S00799.fsecmds +++|*         MODE.  TTLIN CANNOT BE USED.  THE ONLY ALLOWABLE WAY TO
01072  M00S00800.fsecmds +++|*         ADVANCE TO A NEW LINE OF OUTPUT IS TO CALL EOLDSPLAY AS
01073  M00S00801.fsecmds +++|*         A LOGICAL REPLACEMENT FOR TTBRK.  EOLDSPLAY WILL IN TURN
01074  M00S00802.fsecmds +++|*         USE EITHER TTBRK (FOR LINE MODE) OR VDTPOS (SCREEN MODE)
01075  M00S00803.fsecmds +++|*         TO CONTROL THE OUTPUT DEVICE.  BGNDSPLAY IS USED TO INIT
01076  M00S00804.fsecmds +++|*         THE DISPLAY AND ENDDSPLAY CLEANS UP AFTERWARD.  EOLDSPLAY
01077  M00S00805.fsecmds +++|*         INCLUDES SCREEN-OVERFLOW LOGIC.
01078  M00S00806.fsecmds +++|#
01079  M00S00807.fsecmds +++|  ITEM TMP1, TMP2, TMP3, TMP4, TMP5;
01080  M00S00808.fsecmds +++|  BASED ARRAY KEYLIN[0:99]; ITEM KEYLINE;
01081  M00S00809.fsecmds +++|
01082  M00S00810.fsecmds +++|
01083  M00S00811.fsecmds +++|  PROC DSPLFKEY(WHICH);
01084  M00S00812.fsecmds +++|    BEGIN
01085  M00S00813.fsecmds +++|    ITEM WHICH;
01086  M00S00814.fsecmds +++|    ITEM TMP1, TMP2;
01087  M00S00815.fsecmds +++|    P<KEYLIN>=LOC(FKEYSTRING[WHICH]);
01088  M00S00816.fsecmds +++|    IF WHICH LS 0 THEN TTSTR("  SHIFT F$");
01089  M00S00817.fsecmds +++|    ELSE TTSTR("        F$");
01090  M00S00818.fsecmds +++|    TTDEC(ABS(WHICH));
01091  M00S00819.fsecmds +++|    IF ABS(WHICH) LS 10 THEN TTSTR(" $");
01092  M00S00820.fsecmds +++|    TTSTR("  $");
01093  M00S00821.fsecmds +++|    TTST(FKEYNAME[WHICH],6);
01094  M00S00822.fsecmds +++|    TTSTR("  $");
01095  M00S00823.fsecmds +++|    FOR TMP1=0 STEP 1 UNTIL 15 DO
01096  M00S00824.fsecmds +++|      BEGIN
01097  M00S00825.fsecmds +++|      IF TMP1 LS LENGTH(KEYLIN) THEN
01098  M00S00826.fsecmds +++|        BEGIN
01099  M00S00827.fsecmds +++|        GETCHAR(KEYLINE,TMP1,TMP2);
01100  M00S00828.fsecmds +++|        TMP2=XLTINTDSP[TMP2];
01101  M00S00829.fsecmds +++|        C<0,1>TMP2=C<9,1>TMP2;
01102  M00S00830.fsecmds +++|        TTST(TMP2,1);
01103  M00S00831.fsecmds +++|        END
01104  M00S00832.fsecmds +++|      ELSE TTSTR(" $");
01105  M00S00833.fsecmds +++|      END
01106  M00S00834.fsecmds +++|    END                              # OF DSPLFKEY #
01107  M00S00835.fsecmds +++|
01108  M00S00836.fsecmds +++|
01109  M00S00837.fsecmds +++|  # ACTUAL GETSTATUS CODE STARTS HERE #
01110  M00S00838.fsecmds +++|
01111  M00S00839.fsecmds +++|  SCNEOC;
01112  M00S00840.fsecmds +++|  BGNDSPLAY;
Line S00841 Modification History
M01 (Removed by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01113  M01S00841.ns2404  ---|  TTSTR("EDITOR STATUS INFORMATION:$");
Line S00072 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01114  M01S00072.ns2404  +++|  TTSTR("                   $");
01115  M01S00073.ns2404  +++|  TTSTR("  EDITOR STATUS INFORMATION:$");
01116  M00S00842.fsecmds +++|  EOLDSPLAY;
01117  M00S00843.fsecmds +++|  EOLDSPLAY;
Line S00844 Modification History
M01 (Removed by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01118  M01S00844.ns2404  ---|  TTSTR("FILES:    NAME    LOCK CHANGE CHARSET$");
01119  M01S00845.ns2404  ---|  TTSTR(" NUMBERED  SIZE POSITION$");
Line S00074 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01120  M01S00074.ns2404  +++|  TTSTR(" FILES:    NAME    LOCK  CHANGE $");
01121  M01S00075.ns2404  +++|  TTSTR("CHARSET NUMBERED SIZE POSITION$");
01122  M00S00846.fsecmds +++|  EOLDSPLAY;
01123  M00S00847.fsecmds +++|  PUSH;
01124  M00S00848.fsecmds +++|  FOR FILNUM=1 STEP 1 UNTIL 2 DO
01125  M00S00849.fsecmds +++|    BEGIN
01126  M00S00850.fsecmds +++|    IF PADNAME(FILENAM[FILNUM]) NQ " " THEN CLOSEFILE;
01127  M00S00851.fsecmds +++|    END
01128  M00S00852.fsecmds +++|  POSZ(TOPC(FILECTL)+1);
01129  M00S00853.fsecmds +++|  WHYLE CURRENT LS BOTC(FILECTL) DO
01130  M00S00854.fsecmds +++|    BEGIN
01131  M00S00855.fsecmds +++|    SCANFDL(READNAM);
01132  M00S00856.fsecmds +++|    IF READNAM NQ "ZZZNULL" THEN
01133  M00S00857.fsecmds +++|      BEGIN
Line S00858 Modification History
M01 (Removed by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01134  M01S00858.ns2404  ---|      IF CURRENT EQ FDLF(CURFILE) THEN TTSTR("(CURRENT) $");
01135  M01S00859.ns2404  ---|      ELSE TTSTR("          $");
Line S00076 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01136  M01S00076.ns2404  +++|      IF CURRENT EQ FDLF(CURFILE) THEN
01137  M01S00077.ns2404  +++|        BEGIN                        # IF CURRENT FILE, INDICATE #
01138  M01S00078.ns2404  +++|        TTSTR(" (CURRENT) $");
01139  M01S00079.ns2404  +++|        END
01140  M01S00080.ns2404  +++|      ELSE
01141  M01S00081.ns2404  +++|        BEGIN                        # JUST ANOTHER FILE #
01142  M01S00082.ns2404  +++|        TTSTR("           $");
01143  M01S00083.ns2404  +++|        END
01144  M00S00860.fsecmds +++|      FOR FILNUM=0 STEP 1 UNTIL 6 DO TTST(C<FILNUM,1>READNAM,1);
01145  M00S00861.fsecmds +++|      TTST(YESORNO[SCNFDLOCK],7);
01146  M00S00862.fsecmds +++|      TTST(YESORNO[SCNFDCHNG],7);
01147  M00S00863.fsecmds +++|      TTST(CHARTYPE[SCNFDASCI],7);
01148  M00S00864.fsecmds +++|      TTST(YESORNO[SCNFDNUMB],7);
01149  M00S00865.fsecmds +++|      TTLPAD(SCNFDSIZE,7," ");
01150  M00S00866.fsecmds +++|      TTLPAD(SCNFDCURF,7," ");
01151  M00S00867.fsecmds +++|      EOLDSPLAY;
01152  M00S00868.fsecmds +++|      END
01153  M00S00869.fsecmds +++|    FWDZ;
01154  M00S00870.fsecmds +++|    END
01155  M00S00871.fsecmds +++|  POP;
01156  M00S00872.fsecmds +++|  EOLDSPLAY;
Line S00001 Modification History
M01 (Added by) ns2688
Seq #  *Modification Id* Act 
----------------------------+
01157  M01S00001.ns2688  +++|  TTSTR(" SET VIEW IN: $");
01158  M01S00002.ns2688  +++|  TTDEC(DFINBGN);
01159  M01S00003.ns2688  +++|  TTSTR(" $");
01160  M01S00004.ns2688  +++|  TTDEC(DFINEND);
01161  M01S00005.ns2688  +++|  TTSTR("  $");
Line S00873 Modification History
M01 (Removed by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01162  M01S00873.ns2404  ---|  TTSTR("TAB COLUMNS: $");
Line S00084 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01163  M01S00084.ns2404  +++|  TTSTR(" TAB COLUMNS: $");
01164  M00S00874.fsecmds +++|  LINPTR1=TABFN(1);
Line S00875 Modification History
M01 (Removed by) ns2129
Seq #  *Modification Id* Act 
----------------------------+
01165  M01S00875.ns2129  ---|  FOR LINCTR=1 STEP 1 WHILE LINCTR LQ 13 AND LINPTR1 NQ 0 DO
Line S00001 Modification History
M01 (Added by) ns2129
Seq #  *Modification Id* Act 
----------------------------+
01166  M01S00001.ns2129  +++|  FOR LINCTR=1 STEP 1 WHILE LINCTR LQ USERTABS AND LINPTR1 NQ 0 DO
01167  M00S00876.fsecmds +++|    BEGIN
01168  M00S00877.fsecmds +++|    TTDEC(LINPTR1+1); TTSTR("  $");
01169  M00S00878.fsecmds +++|    LINPTR1=TABFN(LINCTR+1);
01170  M00S00879.fsecmds +++|    END
Line S00880 Modification History
M01 (Removed by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01171  M01S00880.ns2449  ---|  EOLDSPLAY;
Line S00881 Modification History
M01 (Removed by) ns2404
M02 (Removed by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01172  M02S00881.ns2449  ---|  TTCHAR(TABCHAR,"TAB CHARACTER: $");
Line S00085 Modification History
M01 (Added by) ns2404
M02 (Removed by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01173  M02S00085.ns2449  ---|  TTCHAR(TABCHAR," TAB CHARACTER: $");
Line S00882 Modification History
M01 (Removed by) fsecm1
M02 (Removed by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01174  M02S00882.ns2449  ---|  EOLDSPLAY;
01175  M02S00883.ns2449  ---|  TTSTR("LINE WIDTH FOR WARNING: $");
Line S00001 Modification History
M01 (Added by) fsecm1
M02 (Removed by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01176  M02S00001.ns2449  ---|  TTSTR("   $");
01177  M02S00002.ns2449  ---|  TTSTR("WARNING WIDTH: $");
Line S00884 Modification History
M01 (Removed by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01178  M01S00884.ns2449  ---|  TTDEC(WIDTH);
Line S00003 Modification History
M01 (Added by) fsecm1
M02 (Removed by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01179  M02S00003.ns2449  ---|  TTSTR("   $");
01180  M02S00004.ns2449  ---|  TTSTR("PARAGRAPH MARGINS: $");
01181  M02S00005.ns2449  ---|  TTDEC(FILLLEFT+1);
01182  M02S00006.ns2449  ---|  TTSTR(" $");
01183  M02S00007.ns2449  ---|  TTDEC(FILLRIGHT+1);
01184  M02S00008.ns2449  ---|  TTSTR(" $");
01185  M02S00009.ns2449  ---|  TTDEC(FILLFIRST+1);
Line S00885 Modification History
M01 (Removed by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01186  M01S00885.ns2449  ---|  EOLDSPLAY;
Line S00001 Modification History
M01 (Added by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01187  M01S00001.ns2449  +++|  EOLDSPLAY;
01188  M01S00002.ns2449  +++|  TTSTR(" SET VIEW WARN: $");
01189  M01S00003.ns2449  +++|  TTDEC(WIDTH);
01190  M01S00004.ns2449  +++|  TTSTR("   $");
01191  M01S00005.ns2449  +++|  TTSTR("SET UNDO: $");
01192  M01S00006.ns2449  +++|  IF AUDITOFF THEN TTSTR(" NO$"); ELSE TTSTR("YES$");
01193  M01S00007.ns2449  +++|  TTSTR("   $");
Line S00008 Modification History
M01 (Added by) ns2449
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
01194  M02S00008.fsecm7  ---|  TTCHAR(TABCHAR,"TAB CHARACTER: $");
Line S00001 Modification History
M01 (Added by) ns2623
M02 (Removed by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
01195  M02S00001.fsecm7  ---|  TTCHAR(UNPRINT,"  CNTRL CHRS: $");
Line S00013 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
01196  M01S00013.fsecm7  +++|  TTSTR("TAB CHARACTER: $");
01197  M01S00014.fsecm7  +++|  TTCHAR(TABCHAR,TRUE);
01198  M01S00015.fsecm7  +++|  TTSTR("  $");
01199  M01S00016.fsecm7  +++|  TTSTR("CNTRL CHRS: $");
01200  M01S00017.fsecm7  +++|  TTCHAR(UNPRINT,TRUE);
Line S00009 Modification History
M01 (Added by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01201  M01S00009.ns2449  +++|  EOLDSPLAY;
01202  M01S00010.ns2449  +++|  TTSTR(" SET VIEW EDIT: $");
01203  M01S00011.ns2449  +++|  TTDEC(EDITFIELD);
01204  M01S00012.ns2449  +++|  TTSTR("   $");
01205  M01S00013.ns2449  +++|  TTSTR("SET JUMP: $");
01206  M01S00014.ns2449  +++|  IF AUTOINDENT THEN TTSTR("YES$"); ELSE TTSTR(" NO$");
01207  M01S00015.ns2449  +++|  TTSTR("   $");
01208  M01S00016.ns2449  +++|  TTSTR("SET WORD FILL: $");
01209  M01S00017.ns2449  +++|  TTDEC(FILLLEFT+1);
01210  M01S00018.ns2449  +++|  TTSTR(" $");
01211  M01S00019.ns2449  +++|  TTDEC(FILLRIGHT+1);
01212  M01S00020.ns2449  +++|  TTSTR(" $");
01213  M01S00021.ns2449  +++|  TTDEC(FILLFIRST+1);
Line S00087 Modification History
M01 (Added by) ns2503
Seq #  *Modification Id* Act 
----------------------------+
01214  M01S00087.ns2503  +++|  TTSTR("   JUSTIFY:$");
01215  M01S00088.ns2503  +++|  IF RIGHTJUST[0] THEN TTSTR(" YES$"); ELSE TTSTR("  NO$");
Line S00022 Modification History
M01 (Added by) ns2449
Seq #  *Modification Id* Act 
----------------------------+
01216  M01S00022.ns2449  +++|  EOLDSPLAY;
Line S00018 Modification History
M01 (Added by) fsecm7
Seq #  *Modification Id* Act 
----------------------------+
01217  M01S00018.fsecm7  +++|  TTSTR(" SEARCH STRING: '$");
01218  M01S00019.fsecm7  +++|  FOR TMP1=0 STEP 1 UNTIL LOCSTRLEN1-1 DO
01219  M01S00020.fsecm7  +++|    BEGIN
01220  M01S00021.fsecm7  +++|    GETCHAR(LOCSTR1,TMP1,TMP2);
01221  M01S00022.fsecm7  +++|    TTCHAR(TMP2,FALSE);
01222  M01S00023.fsecm7  +++|    END
01223  M01S00024.fsecm7  +++|  IF ELLIPSIS THEN
01224  M01S00025.fsecm7  +++|    BEGIN
01225  M01S00026.fsecm7  +++|    TTSTR("'..'$");
01226  M01S00027.fsecm7  +++|    FOR TMP1=0 STEP 1 UNTIL LOCSTRLEN2-1 DO
01227  M01S00028.fsecm7  +++|      BEGIN
01228  M01S00029.fsecm7  +++|      GETCHAR(LOCSTR2,TMP1,TMP2);
01229  M01S00030.fsecm7  +++|      TTCHAR(TMP2,FALSE);
01230  M01S00031.fsecm7  +++|      END
01231  M01S00032.fsecm7  +++|    END
01232  M01S00033.fsecm7  +++|  TTSTR("'$");
01233  M01S00034.fsecm7  +++|  EOLDSPLAY;
01234  M00S00886.fsecmds +++|  IF SCREENMODE THEN
01235  M00S00887.fsecmds +++|    BEGIN
01236  M00S00888.fsecmds +++|    EOLDSPLAY;
Line S00889 Modification History
M01 (Removed by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01237  M01S00889.ns2404  ---|    TTSTR("FUNCTIONS: KEY $");
Line S00086 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01238  M01S00086.ns2404  +++|    TTSTR(" FUNCTIONS: KEY$");
01239  M00S00890.fsecmds +++|    TTSTR("  LABEL   DIRECTIVES      $");
Line S00891 Modification History
M01 (Removed by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01240  M01S00891.ns2404  ---|    TTSTR("       KEY   LABEL   DIRECTIVES$");
Line S00087 Modification History
M01 (Added by) ns2404
Seq #  *Modification Id* Act 
----------------------------+
01241  M01S00087.ns2404  +++|    TTSTR("  KEY        LABEL   DIRECTIVES$");
01242  M00S00892.fsecmds +++|    FOR TMP1=1 STEP 1 UNTIL POSFKEYS DO
01243  M00S00893.fsecmds +++|      BEGIN
01244  M00S00894.fsecmds +++|      TMP2=0;
01245  M00S00895.fsecmds +++|      P<KEYLIN>=LOC(FKEYSTRING[TMP1]);
01246  M00S00896.fsecmds +++|      FOR TMP4=0 STEP 1 UNTIL LENGTH(KEYLIN)-1 DO
01247  M00S00897.fsecmds +++|        BEGIN
01248  M00S00898.fsecmds +++|        GETCHAR(KEYLINE,TMP4,TMP5);
01249  M00S00899.fsecmds +++|        IF TMP5 NQ CBLANK THEN TMP2=1;
01250  M00S00900.fsecmds +++|        END
01251  M00S00901.fsecmds +++|      TMP3=0;
01252  M00S00902.fsecmds +++|      P<KEYLIN>=LOC(FKEYSTRING[-TMP1]);
01253  M00S00903.fsecmds +++|      FOR TMP4=0 STEP 1 UNTIL LENGTH(KEYLIN)-1 DO
01254  M00S00904.fsecmds +++|        BEGIN
01255  M00S00905.fsecmds +++|        GETCHAR(KEYLINE,TMP4,TMP5);
01256  M00S00906.fsecmds +++|        IF TMP5 NQ CBLANK THEN TMP3=1;
01257  M00S00907.fsecmds +++|        END
01258  M00S00908.fsecmds +++|      IF TMP2 NQ 0 OR FKEYNAME[TMP1] NQ " "
01259  M00S00909.fsecmds +++|        OR TMP3 NQ 0 OR FKEYNAME[-TMP1] NQ " " THEN
01260  M00S00910.fsecmds +++|        BEGIN
01261  M00S00911.fsecmds +++|        EOLDSPLAY;
01262  M00S00912.fsecmds +++|        TTSTR("    $");
01263  M00S00913.fsecmds +++|        DSPLFKEY(TMP1);
01264  M00S00914.fsecmds +++|        IF TMP3 NQ 0 OR FKEYNAME[-TMP1] NQ " " THEN DSPLFKEY(-TMP1);
01265  M00S00915.fsecmds +++|        END
01266  M00S00916.fsecmds +++|      END
01267  M00S00917.fsecmds +++|    END
01268  M00S00918.fsecmds +++|  ENDDSPLAY;
01269  M00S00919.fsecmds +++|  END            # OF GETSTATUS  #
01270  M00S00920.fsecmds +++|
01271  M00S00921.fsecmds +++|
01272  M00S00922.fsecmds +++|PROC UNDOCMD;
01273  M00S00923.fsecmds +++|  BEGIN
01274  M00S00924.fsecmds +++|#
01275  M00S00925.fsecmds +++|**        UNDOCMD - COMMAND PROCESSOR FOR UNDO FACILITY.
01276  M00S00926.fsecmds +++|*
01277  M00S00927.fsecmds +++|*         ENTRY  COMMAND SCANNED EXCEPT TERMINATOR VERIFY.
01278  M00S00928.fsecmds +++|*                CURA(AUDITCTL) AT MOST RECENT CHANGE RECORD.
01279  M00S00929.fsecmds +++|*                TOPA(AUDITCTL) BOUNDS AUDIT TRAIL.
01280  M00S00930.fsecmds +++|*                NUMMARKS - WHETHER MARKS ARE CURRENTLY ON.
01281  M00S00931.fsecmds +++|*
01282  M00S00932.fsecmds +++|*         EXIT   COMMAND TERMINATOR VERIFIED.
01283  M00S00933.fsecmds +++|*                SELECTION OF OPENED FILES MAY CHANGE.
01284  M00S00934.fsecmds +++|*                CURA(AUDITCTL) BACKED UP.
01285  M00S00935.fsecmds +++|*                NUMMARKS - ZEROED.
01286  M00S00936.fsecmds +++|*
01287  M00S00937.fsecmds +++|*         MACROS GETCHAR.
01288  M00S00938.fsecmds +++|*
01289  M00S00939.fsecmds +++|*         CALLS  ERRJUMP, AUDITSYNCH, POSZ, UNDODECODE, UNDOOPEN,
01290  M00S00940.fsecmds +++|*                BAKZ, FATAL, PUSH, UNDOPOS, INSX, POP, DELX, REPX,
01291  M00S00941.fsecmds +++|*                PAINTMARKS.
01292  M00S00942.fsecmds +++|*
01293  M00S00943.fsecmds +++|*         USES   AUDITOFF, AUDITUSED, LINPTR1, LINNUM1, LINNUM2,
01294  M00S00944.fsecmds +++|*                LINNUM3, USRBRK.
01295  M00S00945.fsecmds +++|#
Line S00946 Modification History
M01 (Removed by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
01296  M01S00946.242l642 ---|  SCNEOC;
01297  M01S00947.242l642 ---|
01298  M01S00948.242l642 ---|  IF NUMMARKS NQ 0 THEN              # SPECIAL CASE - UNMARK #
01299  M01S00949.242l642 ---|    BEGIN
01300  M01S00950.242l642 ---|    PAINTMARKS(3);
01301  M01S00951.242l642 ---|    NUMMARKS=0;
01302  M01S00952.242l642 ---|    ERRSTRING="MARKS CANCELLED$";
01303  M01S00953.242l642 ---|    RETURN;
01304  M01S00954.242l642 ---|    END
Line S00001 Modification History
M01 (Added by) 242l642
Seq #  *Modification Id* Act 
----------------------------+
01305  M01S00001.242l642 +++|
01306  M01S00002.242l642 +++|  IF SYNTAXCHAR[TOKENCHAR] THEN
01307  M01S00003.242l642 +++|    BEGIN                            # IF MORE SYNTAX #
01308  M01S00004.242l642 +++|    TOKEN;
01309  M01S00005.242l642 +++|    IF NUMMARKS NQ 0 THEN
01310  M01S00006.242l642 +++|      BEGIN                          # IF MARKS ACTIVE #
01311  M01S00007.242l642 +++|      PAINTMARKS(3);
01312  M01S00008.242l642 +++|      NUMMARKS=0;
01313  M01S00009.242l642 +++|      ERRSTRING="MARKS CANCELLED$";
01314  M01S00010.242l642 +++|      END
01315  M01S00011.242l642 +++|    ELSE
01316  M01S00012.242l642 +++|      BEGIN                          # NO MARKS ACTIVE #
01317  M01S00013.242l642 +++|      ERRSTRING="NO MARK(S) ACTIVE$";
01318  M01S00014.242l642 +++|      END
01319  M01S00015.242l642 +++|    SCNEOC;                          # SCAN FOR END OF COMMAND #
01320  M01S00016.242l642 +++|    RETURN;
01321  M01S00017.242l642 +++|    END
01322  M01S00018.242l642 +++|
01323  M01S00019.242l642 +++|  SCNEOC;                            # SCAN FOR END OF COMMAND #
01324  M00S00955.fsecmds +++|
01325  M00S00956.fsecmds +++|  IF AUDITOFF THEN ERRJUMP("SET UNDO YES - TO ENABLE UNDO$");
01326  M00S00957.fsecmds +++|  AUDITOFF=TRUE;
01327  M00S00958.fsecmds +++|  AUDITSYNCH;                # CLEAR STAGING BUFFER        #
01328  M00S00959.fsecmds +++|  AUDITUSED=FALSE;           # NO CHKPT TRANSACT CANCELLED IN MIDDLE #
01329  M00S00960.fsecmds +++|  POSZ(CURA(AUDITCTL));
01330  M00S00961.fsecmds +++|  GETCHAR(LINE,0,LINPTR1);
01331  M00S00962.fsecmds +++|  IF LINPTR1 EQ CLETTERC THEN          # ACCESS PREVIOUS FILES       #
01332  M00S00963.fsecmds +++|    BEGIN
01333  M00S00964.fsecmds +++|    UNDODECODE(1,LINNUM1);             # FIRST FILE        #
01334  M00S00965.fsecmds +++|    UNDODECODE(12,LINNUM2);            # SECOND FILE       #
01335  M00S00966.fsecmds +++|    UNDODECODE(23,LINNUM3);            # SCREEN SPLIT      #
01336  M00S00967.fsecmds +++|    UNDOOPEN(1,LINNUM1);
01337  M00S00968.fsecmds +++|    UNDODECODE(12,LINNUM1);
01338  M00S00969.fsecmds +++|    UNDOOPEN(2,LINNUM1);
01339  M00S00970.fsecmds +++|    BAKZ;
01340  M00S00971.fsecmds +++|    END
01341  M00S00972.fsecmds +++|  GETCHAR(LINE,0,LINPTR1);
01342  M00S00973.fsecmds +++|  WHYLE CURRENT GR TOPA(AUDITCTL) AND LINPTR1 NQ CLETTERC
01343  M00S00974.fsecmds +++|    AND LINPTR1 NQ CLETTERE AND USRBRK EQ 0 DO
01344  M00S00975.fsecmds +++|    BEGIN
01345  M00S00976.fsecmds +++|    UNDODECODE(1,LINNUM1);
01346  M00S00977.fsecmds +++|    UNDODECODE(12,LINNUM2);
01347  M00S00978.fsecmds +++|    UNDODECODE(23,LINNUM3);
01348  M00S00979.fsecmds +++|    IF LINNUM2 NQ FDLF(LINNUM1) THEN UNDOOPEN(LINNUM1,LINNUM2);
01349  M00S00980.fsecmds +++|    IF LINPTR1 EQ CLETTERD THEN
01350  M00S00981.fsecmds +++|      BEGIN
01351  M00S00982.fsecmds +++|      BAKZ;
01352  M00S00983.fsecmds +++|      PUSH;
01353  M00S00984.fsecmds +++|      UNDOPOS(-1);
01354  M00S00985.fsecmds +++|      INSX;
01355  M00S00986.fsecmds +++|      POP;
01356  M00S00987.fsecmds +++|      END
01357  M00S00988.fsecmds +++|    ELSE IF LINPTR1 EQ CLETTERI THEN
01358  M00S00989.fsecmds +++|      BEGIN
01359  M00S00990.fsecmds +++|      PUSH;
01360  M00S00991.fsecmds +++|      UNDOPOS(+1);
01361  M00S00992.fsecmds +++|      DELX;
01362  M00S00993.fsecmds +++|      POP;
01363  M00S00994.fsecmds +++|      END
01364  M00S00995.fsecmds +++|    ELSE IF LINPTR1 EQ CLETTERR THEN
01365  M00S00996.fsecmds +++|      BEGIN
01366  M00S00997.fsecmds +++|      BAKZ;
01367  M00S00998.fsecmds +++|      PUSH;
01368  M00S00999.fsecmds +++|      UNDOPOS(0);
01369  M00S01000.fsecmds +++|      REPX;
01370  M00S01001.fsecmds +++|      CURF(CURFILE)=CURF(CURFILE)-1;
01371  M00S01002.fsecmds +++|      POP;
01372  M00S01003.fsecmds +++|      END
01373  M00S01004.fsecmds +++|    BAKZ;
01374  M00S01005.fsecmds +++|    GETCHAR(LINE,0,LINPTR1);
01375  M00S01006.fsecmds +++|    END
01376  M00S01007.fsecmds +++|  CURA(AUDITCTL)=CURRENT;
01377  M00S01008.fsecmds +++|  CURF(CURFILE)=MAX(MIN(CURF(CURFILE)+1,BOTF(CURFILE)-1),TOPF(CURFILE));
01378  M00S01009.fsecmds +++|  POSZ(CURF(CURFILE));
01379  M00S01010.fsecmds +++|  AUDITOFF=FALSE;
Line S00002 Modification History
M01 (Added by) ns2608
Seq #  *Modification Id* Act 
----------------------------+
01380  M01S00002.ns2608  +++|  NEWCURSOR = 0;
01381  M00S01011.fsecmds +++|  END            # OF UNDOCMD  #
01382  M00S01012.fsecmds +++|
01383  M00S01013.fsecmds +++|
01384  M00S01014.fsecmds +++|PROC WORDCMD;
01385  M00S01015.fsecmds +++|  BEGIN
01386  M00S01016.fsecmds +++|#
01387  M00S01017.fsecmds +++|**        WORDCMD - COMMAND PROCESSOR FOR WORD PROCESSING.
01388  M00S01018.fsecmds +++|*
01389  M00S01019.fsecmds +++|*         ENTRY  COMMAND VERB SCANNED, TOKEN ADVANCED FOR NEXT.
01390  M00S01020.fsecmds +++|*                USUAL DEFAULTS AVAILABLE.  (CURRENT, ETC.)
01391  M00S01021.fsecmds +++|*
01392  M00S01022.fsecmds +++|*         EXIT   COMMAND PROCESSED.
01393  M00S01023.fsecmds +++|*
01394  M00S01024.fsecmds +++|*         CALLS  VFYLOCK, TOKEN, ERRJUMP, SCANNER,
01395  M00S01025.fsecmds +++|*                DOFILL.
01396  M00S01026.fsecmds +++|*
01397  M00S01027.fsecmds +++|*         USES   LCOUNT, SCANPOS, KEYWDTYPE.
01398  M00S01028.fsecmds +++|#
01399  M00S01029.fsecmds +++|  IF TOKENTYPE NQ TYPST"LETTER" OR KEYWDNDX LS 0
01400  M00S01030.fsecmds +++|    THEN ERRJUMP("CHARACTER SEQUENCE NOT RECOGNIZED$");
01401  M00S01031.fsecmds +++|  LCOUNT=KEYWDNDX;
01402  M00S01032.fsecmds +++|  TOKEN;                     # ADVANCE TO NEXT SYNTAX      #
01403  M00S01033.fsecmds +++|  SCANNER;
01404  M00S01034.fsecmds +++|  VFYLOCK;
01405  M00S01035.fsecmds +++|  IF NOT FOUND THEN RETURN;            # OUT OF BOUNDS     #
01406  M00S01036.fsecmds +++|  IF LCOUNT EQ KEYST"WFIL" THEN
01407  M00S01037.fsecmds +++|    BEGIN
01408  M00S01038.fsecmds +++|    DOFILL;
01409  M00S01039.fsecmds +++|    NEWCURSOR=0;
01410  M00S01040.fsecmds +++|    RETURN;
01411  M00S01041.fsecmds +++|    END
01412  M00S01042.fsecmds +++|  ELSE IF LCOUNT EQ KEYST"WCEN" THEN
01413  M00S01043.fsecmds +++|    BEGIN
01414  M00S01044.fsecmds +++|    EXECNDX=EXECST"CENTER";
01415  M00S01045.fsecmds +++|    DORANGE;
01416  M00S01046.fsecmds +++|    RETURN;
01417  M00S01047.fsecmds +++|    END
01418  M00S01048.fsecmds +++|  END            # OF WORDCMD  #
01419  M00S01049.fsecmds +++|
01420  M00S01050.fsecmds +++|
01421  M00S01051.fsecmds +++|END TERM
cdc/nos2.source/opl.opl871/deck/fsecmds.txt ยท Last modified: (external edit)