Seq # *Modification Id* Act
----------------------------+
00001 M01S00001.fsescrn +++|PROC FSESCRN;
00002 M01S00002.fsescrn +++| BEGIN
00003 M01S00003.fsescrn +++|#
00004 M01S00004.fsescrn +++|*** FSESCRN - SCREEN EDITING MODULE.
00005 M01S00005.fsescrn +++|*
Line S00006 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00006 M02S00006.281l803 ---|* COPYRIGHT CONTROL DATA CORPORATION, 1983.
00007 M01S00001.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00008 M01S00007.fsescrn +++|#
00009 M01S00008.fsescrn +++|
00010 M01S00009.fsescrn +++| DEF LISTCON #0#;
00011 M01S00010.fsescrn +++|
00012 M01S00011.fsescrn +++|*IFCALL SINGLE,COMFSGL
00013 M01S00012.fsescrn +++|*IFCALL ONLY,COMFONL
00014 M01S00013.fsescrn +++|*IFCALL MULTI,COMFMLT
00015 M01S00014.fsescrn +++|*CALL COMFFSE
00016 M01S00015.fsescrn +++|*CALL COMFDS1
00017 M01S00016.fsescrn +++|*CALL COMFVD2
00018 M01S00017.fsescrn +++|*CALL COMFDS2
00019 M01S00018.fsescrn +++|*CALL COMFTAB
00020 M01S00019.fsescrn +++|
00021 M01S00020.fsescrn +++|*CALL COMFVDT
00022 M01S00021.fsescrn +++|
00023 M01S00022.fsescrn +++|CONTROL IFEQ MULTI,1;
00024 M01S00023.fsescrn +++| XREF ARRAY RENTSTK [1:MAXREENT]; # SUBROUTINE STACK #
00025 M01S00024.fsescrn +++| BEGIN
00026 M01S00025.fsescrn +++| ITEM RSTK;
00027 M01S00026.fsescrn +++| END
00028 M01S00027.fsescrn +++| XREF ITEM RSTKPTR;
00029 M01S00028.fsescrn +++|CONTROL FI;
00030 M01S00029.fsescrn +++|
00031 M01S00030.fsescrn +++|
00032 M01S00031.fsescrn +++|XDEF
00033 M01S00032.fsescrn +++| BEGIN
00034 M01S00033.fsescrn +++|*CALL COMFXSC
00035 M01S00034.fsescrn +++| END
00036 M01S00035.fsescrn +++|
00037 M01S00036.fsescrn +++|XREF
00038 M01S00037.fsescrn +++| BEGIN
00039 M01S00038.fsescrn +++|*CALL COMFXVT
00040 M01S00039.fsescrn +++|*CALL COMFXTI
00041 M01S00040.fsescrn +++|*CALL COMFXFO
00042 M01S00041.fsescrn +++|*CALL COMFXSB
00043 M01S00042.fsescrn +++|*CALL COMFXED
00044 M01S00043.fsescrn +++| END
00045 M01S00044.fsescrn +++|
00046 M01S00045.fsescrn +++|XREF FUNC LENGTH; # COMPASS ROUTINES #
00047 M01S00046.fsescrn +++|XREF PROC MOVEWD; XREF PROC EXCHWD;
00048 M01S00047.fsescrn +++|#
00049 M01S00048.fsescrn +++| MASKS FOR SETTING THE VARIOUS ATTRIBUTES IN ATTRIBMASK (COMFVD2)
00050 M01S00049.fsescrn +++|#
00051 M01S00050.fsescrn +++| DEF MSKLOGICAL #O"4000"#; # LOGICAL ATTRIBUTE #
00052 M01S00051.fsescrn +++| DEF MSKPROTECT #O"2000"#; # PROTECT #
00053 M01S00052.fsescrn +++| DEF MSKGUARDMD #O"1000"#; # GUARD MODE #
00054 M01S00053.fsescrn +++| DEF MSKUNDERLN #O"0010"#; # UNDERLINE #
00055 M01S00054.fsescrn +++| DEF MSKALTERIN #O"0004"#; # ALTERNATE INTENSITY #
00056 M01S00055.fsescrn +++| DEF MSKINVERSE #O"0002"#; # INVERSE #
00057 M01S00056.fsescrn +++| DEF MSKBLINKMD #O"0001"#; # BLINK MODE #
00058 M01S00057.fsescrn +++|PAGE # DOSCREEN - SCREEN MANIPULATIONS #
00059 M01S00058.fsescrn +++|
00060 M01S00059.fsescrn +++|
00061 M01S00060.fsescrn +++|PROC DOSCREEN;
00062 M01S00061.fsescrn +++| IOBEGIN(DOSCREEN)
00063 M01S00062.fsescrn +++|#
00064 M01S00063.fsescrn +++|** DOSCREEN - MIMIC ON-SCREEN MANIPULATIONS IN INPUT.
00065 M01S00064.fsescrn +++|*
00066 M01S00065.fsescrn +++|* DOSCREEN PROCESSES ALL SCREEN MODE INPUT. IT PERFORMS
00067 M01S00066.fsescrn +++|* FILE MANIPULATIONS TO MIMIC SCREEN MANIPULATIONS. IT
00068 M01S00067.fsescrn +++|* KEEPS FILE POSITIONING UP TO DATE WITH THE USERS CURSOR
00069 M01S00068.fsescrn +++|* POSITIONING. IT COMPUTES NEW DEFAULT CURSOR POSITIONING
00070 M01S00069.fsescrn +++|* BETWEEN TRANSACTIONS. IT PROCESS SOME FUNCTION KEYS
00071 M01S00070.fsescrn +++|* INTERNALLY AND CONVERTS OTHER FUNCTION KEYS INTO COMMAND
00072 M01S00071.fsescrn +++|* STRINGS. DOSCREEN SHOULD BE CALLED ALTERNATING WITH THE
00073 M01S00072.fsescrn +++|* COMMAND SCANNER AND THE SCREEN PAINTER.
00074 M01S00073.fsescrn +++|*
00075 M01S00074.fsescrn +++|* ENTRY CMDLIN - REPAIRABLE COMMANDS IF ANY OR NULL.
00076 M01S00075.fsescrn +++|* OUTPUT CYCLE (PAINTSCREEN) EXECUTED.
00077 M01S00076.fsescrn +++|* VTXCUR, VTYCUR - CURSOR AS SET BY OUTPUT.
00078 M01S00077.fsescrn +++|* CURFILE, CURSPLIT, CURRENT - AS SET BY
00079 M01S00078.fsescrn +++|* COMMAND PROCESSING.
00080 M01S00079.fsescrn +++|* FILENAM[1-2], FILEATTR[1-2] - SET UP.
00081 M01S00080.fsescrn +++|* XSHIFT[1-2], YSHIFT[1-2] - SHIFT FACTORS.
00082 M01S00081.fsescrn +++|* TOPS(1-2), BOTS(1-2), BOTF(1-2) - SCREEN BOUNDARIES.
00083 M01S00082.fsescrn +++|* SETUPSCREEN ALREADY CALLED. (TITLEROW[1-2],
00084 M01S00083.fsescrn +++|* NUMROWS[1-2], ROWTYPE[1-2], ETC, SETUP)
00085 M01S00084.fsescrn +++|* ROWPAINT[ALL] - FALSE SINCE PAINTSCREEN CALLED.
00086 M01S00085.fsescrn +++|* FKEYNAME[ALL,ALL] - SETUP.
00087 M01S00086.fsescrn +++|* CHARRANGE - INDICATES LINE OR CHARACTER MARKING.
00088 M01S00087.fsescrn +++|* TABVTPROTM[0] - SETUP.
00089 M01S00088.fsescrn +++|* COMMANDROW - SETUP.
00090 M01S00089.fsescrn +++|* PROMPTING - INDICATES NORMAL OR SPECIAL PROMPT.
00091 M01S00090.fsescrn +++|* EDITFIELD - LOGICAL RIGHT LIMIT ON CHANGES.
00092 M01S00091.fsescrn +++|*
00093 M01S00092.fsescrn +++|* EXIT CMDLIN - REPAIRED OR NEWLY ENTERED COMMANDS.
00094 M01S00093.fsescrn +++|* ROWPAINT[ANY] - POSSIBLY TRUE.
00095 M01S00094.fsescrn +++|* VTXCUR, VTYCUR - CURSOR AS MOVED BY USER.
00096 M01S00095.fsescrn +++|* XCURSOR, YCURSOR - SET BY USER THEN POSSIBLY
00097 M01S00096.fsescrn +++|* UPDATED TO ADVANCE THRU FILE OR TO STAY
00098 M01S00097.fsescrn +++|* WITH DATA UPON AUTO HALF-PAGE ADVANCE.
00099 M01S00098.fsescrn +++|* XSHIFT[1-2], YSHIFT[1-2] - POSSIBLY UPDATED.
00100 M01S00099.fsescrn +++|* TOPS(1-2), BOTS(1-2), BOTF(1-2) - UPDATED.
00101 M01S00100.fsescrn +++|* CURFILE, CURSPLIT, CURRENT - AS SELECTED BY USER.
00102 M01S00101.fsescrn +++|* CURCURSOR - USERS LAST VTXCUR, SHIFTED.
00103 M01S00102.fsescrn +++|* HARDFN - FALSE TO ALLOW PROPER COMMAND OPERATION.
00104 M01S00103.fsescrn +++|* LIN - TEXT CORRESPONDING TO CURRENT, CURFILE.
00105 M01S00104.fsescrn +++|*
00106 M01S00105.fsescrn +++|* MACROS GETCHAR, SETCHAR, YTOL, LTOY.
00107 M01S00106.fsescrn +++|*
00108 M01S00107.fsescrn +++|* CALLS (INTERNAL) - ALIGN, CLEANLINE, DELTEXT, DSERRJMP,
00109 M01S00108.fsescrn +++|* EXTEND, INCRCURSOR, INSTEXT, MOVETEXT, REJECT,
00110 M01S00109.fsescrn +++|* SETCMD, SETCURSOR.
00111 M01S00110.fsescrn +++|* (EXTERNAL) - BAKZ, DELX, INSX, LENGTH, PAINTALL,
00112 M01S00111.fsescrn +++|* PAINTREST, PAINTSPLIT, SETBOTS, SETMARK, SETTOPS,
00113 M01S00112.fsescrn +++|* TRIMPAD, VDTBOO, VDTEOO, VDTINP, VDTPPI, VFYLOCK.
00114 M01S00113.fsescrn +++|*
00115 M01S00114.fsescrn +++|* USES ALIGNGOOD, COMPUTEDPOS, FKEYNDX, HARDFN, LINECHANGED,
00116 M01S00115.fsescrn +++|* OLDVTXCUR, OLDVTYCUR, READNAM, SCREENLIMIT, SCRNPT1,
00117 M01S00116.fsescrn +++|* SCRNPT2, SCRNPT3, SCRNPT4, SCRNPT5, SOFTTAB.
00118 M01S00117.fsescrn +++|*
00119 M01S00118.fsescrn +++|* NOTE -
00120 M01S00119.fsescrn +++|*
00121 M01S00120.fsescrn +++|* DOSCREEN MUST PROCESS ALL INPUT CHARACTERS. THE ONLY UN-
00122 M01S00121.fsescrn +++|* FINISHED BUSINESS IT MAY LEAVE WOULD BE THE CONTENTS OF THE
00123 M01S00122.fsescrn +++|* COMMAND BUFFER LINE. DOSCREEN CAN EXIT ONLY THROUGH THE
00124 M01S00123.fsescrn +++|* "DSEOI" SECTION OR THRU THE DSERRJMP ROUTINE. DOSCREEN MUST
00125 M01S00124.fsescrn +++|* THEREFORE BE FUNCTIONALLY EQUIVALENT IN BOTH SINGLE AND MULTI
00126 M01S00125.fsescrn +++|* USER VERSIONS. THE ONLY SINGLE/MULTI COMPILE-TIME DIFFERENCE
00127 M01S00126.fsescrn +++|* ALLOWABLE WOULD BE MODULE-DEPENDENT OPTIMIZATIONS WHICH CAUSE
00128 M01S00127.fsescrn +++|* NO TRANSITIONS TO OCCUR.
00129 M01S00128.fsescrn +++|#
00130 M01S00129.fsescrn +++|
00131 M01S00130.fsescrn +++| # NOTE -- SCREENSW AND VIRTERMATR MUST MATCH SCREENST #
00132 M01S00131.fsescrn +++|
Line S00132 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00133 M02S00132.ns2641 ---| SWITCH SCREENSW DSDUMMY, DSCHAR, DSINSC, DSDELC, DSINSL,
00134 M01S00001.ns2641 +++| SWITCH SCREENSW DSCLRALL, DSCHAR, DSINSC, DSDELC, DSINSL,
00135 M01S00133.fsescrn +++| DSDELL, DSCLRPAG, DSCLREOP, DSCLRUNP, DSCLREOL, DSPOS,
00136 M01S00134.fsescrn +++| DSHOME, DSUP, DSDOWN, DSLEFT, DSRIGHT, DSFTAB, DSBTAB,
00137 M01S00135.fsescrn +++| DSRET, DSERAC, DSERAL, DSEOI, DSRESET, DSFKEY, DSGENERIC,
Line S00136 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00138 M02S00136.ns2641 ---| DSBAD, DSNOOP, DSCOORD, DSPROTECT, DSFIELD, DSRSRV1, DSRSRV2;
00139 M01S00002.ns2641 +++| DSBAD, DSNOOP, DSCOORD, DSPROTECT, DSFIELD, DSCLRTAB, DSSETTAB;
00140 M01S00137.fsescrn +++|
00141 M01S00138.fsescrn +++| ARRAY VIRTERMATR [0:31]; # VIRTUAL TERMINAL ATTRIBUTES #
00142 M01S00139.fsescrn +++| BEGIN # INDEXED BY VDT ORDINAL #
00143 M01S00140.fsescrn +++| ITEM NEEDALIGN B(0,0,1)=[
Line S00141 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00144 M02S00141.ns2641 ---| FALSE, TRUE, TRUE, TRUE, # DUMMY, CHAR, IC, DC #
00145 M01S00003.ns2641 +++| FALSE, TRUE, TRUE, TRUE, # CLRALL, CHAR, IC, DC #
00146 M01S00142.fsescrn +++| TRUE, TRUE, TRUE, TRUE, # IL, DL, CLRPAG, CLREOP #
00147 M01S00143.fsescrn +++| TRUE, TRUE, FALSE, FALSE, # CLRUNP, CLREOL, POS, HOME #
00148 M01S00144.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # UP, DOWN, LEFT, RIGHT #
00149 M01S00145.fsescrn +++| FALSE, FALSE, FALSE, TRUE, # FTAB, BTAB, RET, ERAC #
00150 M01S00146.fsescrn +++| TRUE, FALSE, FALSE, TRUE, # ERAL, EOI, RESET, FUNCTION #
00151 M01S00147.fsescrn +++| TRUE, FALSE, FALSE, FALSE, # GENERIC, BAD, NOOP, COORD #
Line S00148 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00152 M02S00148.ns2641 ---| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, 2 FILLERS #
00153 M01S00004.ns2641 +++| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, CLRTAB, SETTAB#
00154 M01S00149.fsescrn +++| ];
00155 M01S00150.fsescrn +++| ITEM NEEDCLEAN B(0,1,1)=[
Line S00151 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00156 M02S00151.ns2641 ---| FALSE, FALSE, FALSE, FALSE, # DUMMY, CHAR, IC, DC #
00157 M01S00005.ns2641 +++| FALSE, FALSE, FALSE, FALSE, # CLRALL, CHAR, IC, DC #
00158 M01S00152.fsescrn +++| TRUE, TRUE, FALSE, FALSE, # IL, DL, CLRPAG, CLREOP #
00159 M01S00153.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # CLRUNP, CLREOL, POS, HOME #
00160 M01S00154.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # UP, DOWN, LEFT, RIGHT #
00161 M01S00155.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # FTAB, BTAB, RET, ERAC #
00162 M01S00156.fsescrn +++| FALSE, TRUE, FALSE, TRUE, # ERAL, EOI, RESET, FUNCTION #
00163 M01S00157.fsescrn +++| TRUE, FALSE, FALSE, FALSE, # GENERIC, BAD, NOOP, COORD #
Line S00158 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00164 M02S00158.ns2641 ---| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, 2 FILLERS #
00165 M01S00006.ns2641 +++| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, CLRTAB, SETTAB#
00166 M01S00159.fsescrn +++| ];
00167 M01S00160.fsescrn +++| ITEM NEEDUNLOCK B(0,2,1)=[
Line S00161 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00168 M02S00161.ns2641 ---| FALSE, TRUE, TRUE, TRUE, # DUMMY, CHAR, IC, DC #
00169 M01S00007.ns2641 +++| FALSE, TRUE, TRUE, TRUE, # CLRALL, CHAR, IC, DC #
00170 M01S00162.fsescrn +++| TRUE, TRUE, FALSE, FALSE, # IL, DL, CLRPAG, CLREOP #
00171 M01S00163.fsescrn +++| FALSE, TRUE, FALSE, FALSE, # CLRUNP, CLREOL, POS, HOME #
00172 M01S00164.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # UP, DOWN, LEFT, RIGHT #
00173 M01S00165.fsescrn +++| FALSE, FALSE, FALSE, TRUE, # FTAB, BTAB, RET, ERAC #
00174 M01S00166.fsescrn +++| TRUE, FALSE, FALSE, FALSE, # ERAL, EOI, RESET, FUNCTION #
00175 M01S00167.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # GENERIC, BAD, NOOP, COORD #
Line S00168 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00176 M02S00168.ns2641 ---| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, 2 FILLERS #
00177 M01S00008.ns2641 +++| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, CLRTAB, SETTAB#
00178 M01S00169.fsescrn +++| ];
00179 M01S00170.fsescrn +++| ITEM NEEDCURSOR B(0,3,1)=[
Line S00171 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00180 M02S00171.ns2641 ---| FALSE, TRUE, TRUE, TRUE, # DUMMY, CHAR, IC, DC #
00181 M01S00009.ns2641 +++| FALSE, TRUE, TRUE, TRUE, # CLRALL, CHAR, IC, DC #
00182 M01S00172.fsescrn +++| TRUE, TRUE, TRUE, TRUE, # IL, DL, CLRPAG, CLREOP #
00183 M01S00173.fsescrn +++| TRUE, TRUE, FALSE, FALSE, # CLRUNP, CLREOL, POS, HOME #
00184 M01S00174.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # UP, DOWN, LEFT, RIGHT #
00185 M01S00175.fsescrn +++| FALSE, FALSE, FALSE, TRUE, # FTAB, BTAB, RET, ERAC #
00186 M01S00176.fsescrn +++| TRUE, FALSE, FALSE, TRUE, # ERAL, EOI, RESET, FUNCTION #
00187 M01S00177.fsescrn +++| TRUE, FALSE, FALSE, FALSE, # GENERIC, BAD, NOOP, COORD #
Line S00178 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00188 M02S00178.ns2641 ---| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, 2 FILLERS #
00189 M01S00010.ns2641 +++| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, CLRTAB, SETTAB#
00190 M01S00179.fsescrn +++| ];
00191 M01S00180.fsescrn +++| ITEM NEEDLIMIT U(0,6,6)=[
Line S00181 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00192 M02S00181.ns2641 ---| 0, 1, 1, 1, # DUMMY, CHAR, IC, DC #
00193 M01S00011.ns2641 +++| 0, 1, 1, 1, # CLRALL, CHAR, IC, DC #
00194 M01S00182.fsescrn +++| 1, 1, 1, 1, # IL, DL, CLRPAG, CLREOP #
00195 M01S00183.fsescrn +++| 2, 1, 1, 1, # CLRUNP, CLREOL, POS, HOME #
00196 M01S00184.fsescrn +++| 1, 1, 1, 1, # UP, DOWN, LEFT, RIGHT #
00197 M01S00185.fsescrn +++| 1, 1, 0, 1, # FTAB, BTAB, RET, ERAC #
00198 M01S00186.fsescrn +++| 1, 0, 0, 2, # ERAL, EOI, RESET, FUNCTION #
00199 M01S00187.fsescrn +++| 2, 0, 0, 0, # GENERIC, BAD, NOOP, COORD #
Line S00188 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00200 M02S00188.ns2641 ---| 0, 1, 0, 0 # PROTECT, FIELD, 2 FILLERS #
00201 M01S00012.ns2641 +++| 0, 1, 0, 0 # PROTECT, FIELD, CLRTAB, SETTAB#
00202 M01S00189.fsescrn +++| ];
00203 M01S00190.fsescrn +++| END
00204 M01S00191.fsescrn +++|
00205 M01S00192.fsescrn +++| BASED ARRAY KEYLIN[0:99]; ITEM KEYLINE;
00206 M01S00193.fsescrn +++|PAGE # SUBROUTINES INTERNAL TO DOSCREEN #
00207 M01S00194.fsescrn +++|
00208 M01S00195.fsescrn +++|
00209 M01S00196.fsescrn +++| PROC SETCURSOR;
00210 M01S00197.fsescrn +++| BEGIN
00211 M01S00198.fsescrn +++|#
00212 M01S00199.fsescrn +++|** SETCURSOR - SET CURSOR CONTROLS.
00213 M01S00200.fsescrn +++|*
00214 M01S00201.fsescrn +++|* ENTRY ROWTYPE[ALL], ROWSPLIT[ALL] - SETUP.
00215 M01S00202.fsescrn +++|*
00216 M01S00203.fsescrn +++|* EXIT XCURSOR, YCURSOR, COMPUTEDPOS - SETUP.
00217 M01S00204.fsescrn +++|* CURCURSOR - SET IF YCURSOR ON TEXT ROW.
00218 M01S00205.fsescrn +++|#
00219 M01S00206.fsescrn +++| XCURSOR=VTXCUR;
00220 M01S00207.fsescrn +++| YCURSOR=VTYCUR;
00221 M01S00208.fsescrn +++| COMPUTEDPOS=TRUE;
00222 M01S00209.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT"
00223 M01S00210.fsescrn +++| OR ROWTYPE[YCURSOR] EQ ROWST"TITLE" THEN
00224 M01S00211.fsescrn +++| BEGIN
00225 M01S00212.fsescrn +++| CURCURSOR=XCURSOR+XSHIFT[ROWSPLIT[YCURSOR]];
00226 M01S00213.fsescrn +++| CURSPLIT=ROWSPLIT[YCURSOR];
00227 M01S00214.fsescrn +++| END
00228 M01S00215.fsescrn +++| END # OF SETCURSOR #
00229 M01S00216.fsescrn +++|
00230 M01S00217.fsescrn +++| PROC ALIGN;
00231 M01S00218.fsescrn +++| IOBEGIN(ALIGN)
00232 M01S00219.fsescrn +++|#
00233 M01S00220.fsescrn +++|** ALIGN - ASSURE FILE ALIGNED WITH CURSOR.
00234 M01S00221.fsescrn +++|*
00235 M01S00222.fsescrn +++|* ENTRY YCURSOR - WHERE THE CURSOR IS.
00236 M01S00223.fsescrn +++|* CURRENT - MOST RECENT FILE POSITION.
00237 M01S00224.fsescrn +++|* ROWTYPE[ALL], ROWSPLIT[ALL] - SETUP.
00238 M01S00225.fsescrn +++|* TOPS(1-2), BOTF(1-2) - SETUP.
00239 M01S00226.fsescrn +++|* NUMROWS[1-2], SPLITFILE[1-2] - SETUP.
00240 M01S00227.fsescrn +++|* PROMPTING - WHETHER NORMAL OR SPECIAL DISPLAY.
00241 M01S00228.fsescrn +++|*
00242 M01S00229.fsescrn +++|* EXIT ALIGNGOOD - TRUE IF PROMPTING AND SUCCEEDED
00243 M01S00230.fsescrn +++|* IN GETTING TO RIGHT LINE. FALSE IF CURSOR NOT
00244 M01S00231.fsescrn +++|* ON TEXT OR IN AREA BEYOND LAST EXTANT LINE.
00245 M01S00232.fsescrn +++|* CURRENT, CURFILE, CURSPLIT - WHERE WE ARE.
00246 M01S00233.fsescrn +++|* CURF(CURFILE) - WHERE WE ARE.
00247 M01S00234.fsescrn +++|*
00248 M01S00235.fsescrn +++|* MACROS YTOL.
00249 M01S00236.fsescrn +++|*
00250 M01S00237.fsescrn +++|* CALLS CLEANLINE, POSZ.
00251 M01S00238.fsescrn +++|*
00252 M01S00239.fsescrn +++|* USES SCRNPT1.
00253 M01S00240.fsescrn +++|#
00254 M01S00241.fsescrn +++| ALIGNGOOD=FALSE;
00255 M01S00242.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT" OR
Line S00243 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc22 |
Seq # *Modification Id* Act
----------------------------+
00256 M02S00243.fsesc22 ---| ROWTYPE[YCURSOR] EQ ROWST"TITLE" THEN
00257 M01S00001.fsesc22 +++| (ROWTYPE[YCURSOR] EQ ROWST"TITLE" AND
00258 M01S00002.fsesc22 +++| ROWSPLIT[YCURSOR] EQ CURSPLIT) THEN
00259 M01S00244.fsescrn +++| BEGIN
00260 M01S00245.fsescrn +++| EXTENDSIZE=0;
00261 M01S00246.fsescrn +++| CURSPLIT=ROWSPLIT[YCURSOR];
00262 M01S00247.fsescrn +++| CURSPLIT=MIN(MAX(CURSPLIT,1),2);
00263 M01S00248.fsescrn +++| SCRNPT1=YTOL(YCURSOR,CURSPLIT);
00264 M01S00249.fsescrn +++| IF SCRNPT1 LQ MIN(TOPS(CURSPLIT)+NUMROWS[CURSPLIT],
00265 M01S00250.fsescrn +++| BOTF(SPLITFILE[CURSPLIT])-1) THEN
00266 M01S00251.fsescrn +++| BEGIN
00267 M01S00252.fsescrn +++| IF NOT PROMPTING AND ROWTYPE[YCURSOR] EQ
00268 M01S00253.fsescrn +++| ROWST"TEXT" THEN ALIGNGOOD=TRUE;
00269 M01S00254.fsescrn +++| IF CURRENT NQ SCRNPT1
00270 M01S00255.fsescrn +++| OR CURFILE NQ SPLITFILE[CURSPLIT] THEN
00271 M01S00256.fsescrn +++| BEGIN
00272 M01S00257.fsescrn +++| CLEANLINE;
00273 M01S00258.fsescrn +++| CURF(CURFILE)=CURRENT;
00274 M01S00259.fsescrn +++| POSZ(SCRNPT1);
00275 M01S00260.fsescrn +++| CURFILE=SPLITFILE[CURSPLIT];
00276 M01S00261.fsescrn +++| END
00277 M01S00262.fsescrn +++| END
00278 M01S00263.fsescrn +++| ELSE
00279 M01S00264.fsescrn +++| BEGIN
00280 M01S00265.fsescrn +++| CLEANLINE;
00281 M01S00266.fsescrn +++| CURFILE=SPLITFILE[CURSPLIT];
00282 M01S00267.fsescrn +++| POSZ(BOTF(CURFILE)-1);
00283 M01S00268.fsescrn +++| CURF(CURFILE)=CURRENT;
00284 M01S00269.fsescrn +++| EXTENDSIZE=SCRNPT1-BOTF(CURFILE)+1;
00285 M01S00270.fsescrn +++| END
00286 M01S00271.fsescrn +++| END
00287 M01S00272.fsescrn +++| IOEND # OF ALIGN #
00288 M01S00273.fsescrn +++|
00289 M01S00274.fsescrn +++| PROC EXTEND;
00290 M01S00275.fsescrn +++| IOBEGIN(EXTEND)
00291 M01S00276.fsescrn +++|#
00292 M01S00277.fsescrn +++|** EXTEND - LENGTHEN FILE TO MATCH CURSOR ALIGNMENT.
00293 M01S00278.fsescrn +++|*
00294 M01S00279.fsescrn +++|* ENTRY ALIGN ROUTINE RECENTLY CALLED.
00295 M01S00280.fsescrn +++|* ALIGNGOOD - RESULT OF ALIGN ROUTINE.
00296 M01S00281.fsescrn +++|* ROWTYPE[ALL], ROWSPLIT[ALL] - SETUP.
00297 M01S00282.fsescrn +++|* BOTF(1-2), SPLITFILE[1-2] - SETUP.
00298 M01S00283.fsescrn +++|* CURRENT - MOST RECENT FILE POSITION.
00299 M01S00284.fsescrn +++|* PROMPTING - NORMAL OR SPECIAL DISPLAY.
00300 M01S00285.fsescrn +++|*
00301 M01S00286.fsescrn +++|* EXIT ALIGNGOOD - ASSURED TRUE UNLESS PROMPTING.
00302 M01S00287.fsescrn +++|* CURSPLIT, CURRENT, CURFILE - WHERE WE ARE.
00303 M01S00288.fsescrn +++|* CURF(CURFILE) - WHERE WE WERE BEFORE CHANGING CURFILE.
00304 M01S00289.fsescrn +++|* HARDFN - FALSE IF WE EXTENDED THE FILE.
00305 M01S00290.fsescrn +++|* FILE IS POSSIBLY LONGER.
00306 M01S00291.fsescrn +++|*
00307 M01S00292.fsescrn +++|* MACROS YTOL.
00308 M01S00293.fsescrn +++|*
00309 M01S00294.fsescrn +++|* CALLS CLEANLINE, POSZ, INSZ.
00310 M01S00295.fsescrn +++|*
00311 M01S00296.fsescrn +++|* USES LIN.
00312 M01S00297.fsescrn +++|*
00313 M01S00298.fsescrn +++|* NOTE ALGORITHM ASSUMES CURSOR INDICATES FILE EXTENSION
00314 M01S00299.fsescrn +++|* ANYTIME IT IS ON A TEXT ROW BUT ALIGNGOOD IS OFF AND
00315 M01S00300.fsescrn +++|* THE FILE POSITION EXCEEDS BOTF(SPLITFILE[CURSPLIT]).
00316 M01S00301.fsescrn +++|#
00317 M01S00302.fsescrn +++| IF NOT ALIGNGOOD THEN
00318 M01S00303.fsescrn +++| BEGIN
00319 M01S00304.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT" THEN
00320 M01S00305.fsescrn +++| BEGIN
00321 M01S00306.fsescrn +++| CURSPLIT=ROWSPLIT[YCURSOR];
00322 M01S00307.fsescrn +++| CURSPLIT=MIN(MAX(CURSPLIT,1),2);
00323 M01S00308.fsescrn +++| IF YTOL(YCURSOR,CURSPLIT) GQ BOTF(SPLITFILE[CURSPLIT]) THEN
00324 M01S00309.fsescrn +++| BEGIN
00325 M01S00310.fsescrn +++| CLEANLINE;
00326 M01S00311.fsescrn +++| CURF(CURFILE)=CURRENT;
00327 M01S00312.fsescrn +++| POSZ(BOTF(SPLITFILE[CURSPLIT])-1);
00328 M01S00313.fsescrn +++| LINE[0]=NULLIN;
00329 M01S00314.fsescrn +++| HARDFN=FALSE;
00330 M01S00315.fsescrn +++| FOR SCRNPT4=LTOY(CURRENT,CURSPLIT)+1 STEP 1
00331 M01S00316.fsescrn +++| UNTIL YCURSOR DO INSZ;
00332 M01S00317.fsescrn +++| IF NOT PROMPTING THEN ALIGNGOOD=TRUE;
00333 M01S00318.fsescrn +++| CURFILE=SPLITFILE[CURSPLIT];
00334 M01S00319.fsescrn +++| END
00335 M01S00320.fsescrn +++| END
00336 M01S00321.fsescrn +++| END
00337 M01S00322.fsescrn +++| IOEND # OF EXTEND #
00338 M01S00323.fsescrn +++|
00339 M01S00324.fsescrn +++| PROC CLEANLINE;
00340 M01S00325.fsescrn +++| IOBEGIN(CLEANLINE)
00341 M01S00326.fsescrn +++|#
00342 M01S00327.fsescrn +++|** CLEANLINE - CLEAN UP LINE BUFFER AND FILE BEFORE MOVING.
00343 M01S00328.fsescrn +++|*
00344 M01S00329.fsescrn +++|* ENTRY LINECHANGED - LINE BUFFER RECENTLY ALTERED.
00345 M01S00330.fsescrn +++|* LIN - THE LINE BUFFER.
00346 M01S00331.fsescrn +++|* CURRENT - WHERE WE ARE IN THE FILE.
00347 M01S00332.fsescrn +++|* SOFTTAB - TRUE IF ANY CHANGE WAS SOFT-TAB OVERSTRIKE.
00348 M01S00333.fsescrn +++|* CURFILE - WHICH FILE BRACKET WE ARE IN.
00349 M01S00334.fsescrn +++|* CURSPLIT - WHICH SCREEN BRACKET WE ARE IN.
00350 M01S00335.fsescrn +++|* NUMBERED[CURFILE] - SEQUENCING MODE FOR THIS FILE.
00351 M01S00336.fsescrn +++|* WIDTH - USERS LINE WIDTH THRESHHOLD.
00352 M01S00337.fsescrn +++|*
00353 M01S00338.fsescrn +++|* EXIT ANY CHANGES TO LINE BUFFER ARE IN WORKFILE.
00354 M01S00339.fsescrn +++|* SEQUENCE NUMBERS ADJUSTED TO NUMWIDTH.
00355 M01S00340.fsescrn +++|* OUT-OF-SEQUENCE NUMBERS BLANKED OUT.
00356 M01S00341.fsescrn +++|* LINECHANGED, SOFTTAB - CLEARED.
00357 M01S00342.fsescrn +++|* ERRSTRING - POSSIBLE WIDE LINE WARNING.
00358 M01S00343.fsescrn +++|* ROWPAINT[THIS LINE] - POSSIBLY TRUE.
00359 M01S00344.fsescrn +++|*
00360 M01S00345.fsescrn +++|* MACROS SETCHAR, LTOY.
00361 M01S00346.fsescrn +++|*
00362 M01S00347.fsescrn +++|* CALLS COPYLIN, DOTAB, TRIMPAD, REPX, GETLNUM, SETLNUM,
00363 M01S00348.fsescrn +++|* PUSH, BAKNUM, POP, FWDNUM, LENGTH.
00364 M01S00349.fsescrn +++|*
00365 M01S00350.fsescrn +++|* USES WIDTHFOUND, LINENO, SCRNPT2, SCRNPT3.
00366 M01S00351.fsescrn +++|#
00367 M01S00352.fsescrn +++| IF LINECHANGED THEN
00368 M01S00353.fsescrn +++| BEGIN
00369 M01S00354.fsescrn +++| LINECHANGED=FALSE;
00370 M01S00355.fsescrn +++| IF SOFTTAB THEN
00371 M01S00356.fsescrn +++| BEGIN
00372 M01S00357.fsescrn +++| SOFTTAB=FALSE;
00373 M01S00358.fsescrn +++| COPYLIN(LIN,TTYLIN);
00374 M01S00359.fsescrn +++| DOTAB(NUMWIDBLK,NUMWIDBLK,NUMWIDBLK);
00375 M01S00360.fsescrn +++| COPYLIN(TTYLIN,LIN);
00376 M01S00361.fsescrn +++| END
00377 M01S00362.fsescrn +++| TRIMPAD;
00378 M01S00363.fsescrn +++| REPX;
00379 M01S00364.fsescrn +++| IF NUMBERED[CURFILE] NQ 0 THEN
00380 M01S00365.fsescrn +++| BEGIN # ASSURE ASCENDING NUMBERS #
00381 M01S00366.fsescrn +++| GETLNUM; # SEE IF ANY NUMBER TO FIX #
00382 M01S00367.fsescrn +++| IF WIDTHFOUND NQ 0 THEN
00383 M01S00368.fsescrn +++| BEGIN
00384 M01S00369.fsescrn +++| IF WIDTHFOUND NQ NUMWIDTH THEN # NOT STANDARD #
00385 M01S00370.fsescrn +++| BEGIN
00386 M01S00371.fsescrn +++| SETLNUM;
00387 M01S00372.fsescrn +++| HARDFN=FALSE;
00388 M01S00373.fsescrn +++| REPX;
00389 M01S00374.fsescrn +++| END
00390 M01S00375.fsescrn +++| ELSE # DIGITS OK BUT CHECK BLANK #
00391 M01S00376.fsescrn +++| BEGIN
00392 M01S00377.fsescrn +++| GETCHAR(LINE,NUMWIDTH,SCRNPT2);
00393 M01S00378.fsescrn +++| IF BLANKS NQ 0 AND SCRNPT2 NQ CBLANK THEN
00394 M01S00379.fsescrn +++| BEGIN
00395 M01S00380.fsescrn +++| RSHIFT(LIN,NUMWIDTH,1);
00396 M01S00381.fsescrn +++| SETCHAR(LINE,NUMWIDTH,CBLANK);
00397 M01S00382.fsescrn +++| END
00398 M01S00383.fsescrn +++| END
00399 M01S00384.fsescrn +++| SCRNPT2=LINENO; # VERIFY BOUNDARIES #
00400 M01S00385.fsescrn +++| PUSH;
00401 M01S00386.fsescrn +++| BAKNUM;
00402 M01S00387.fsescrn +++| POP;
00403 M01S00388.fsescrn +++| SCRNPT3=LINENO;
00404 M01S00389.fsescrn +++| PUSH;
00405 M01S00390.fsescrn +++| FWDNUM;
00406 M01S00391.fsescrn +++| POP;
00407 M01S00392.fsescrn +++| IF SCRNPT2 LQ SCRNPT3 OR SCRNPT2 GQ LINENO THEN
00408 M01S00393.fsescrn +++| BEGIN # NOT ASCEND SO BLANKOUT #
00409 M01S00394.fsescrn +++| FOR SCRNPT2=1 STEP 1 UNTIL NUMWIDTH
00410 M01S00395.fsescrn +++| DO SETCHAR(LINE,SCRNPT2-1,CBLANK);
00411 M01S00396.fsescrn +++| END
00412 M01S00397.fsescrn +++| HARDFN=FALSE;
00413 M01S00398.fsescrn +++| REPX;
00414 M01S00399.fsescrn +++| END
00415 M01S00400.fsescrn +++| END
00416 M01S00401.fsescrn +++| IF LENGTH(LIN) GR WIDTH+NUMWIDBLK AND ERRSTRING EQ " $" THEN
00417 M01S00402.fsescrn +++| BEGIN
00418 M01S00403.fsescrn +++| ERRSTRING="WIDE LINE$";
00419 M01S00404.fsescrn +++| END
00420 M01S00405.fsescrn +++| END
00421 M01S00406.fsescrn +++| IOEND # OF CLEANLINE #
00422 M01S00407.fsescrn +++|
00423 M01S00408.fsescrn +++|
00424 M01S00409.fsescrn +++| PROC REJECT;
00425 M01S00410.fsescrn +++|# TITLE REJECT - REJECT CHANGE. #
00426 M01S00411.fsescrn +++|
00427 M01S00412.fsescrn +++| BEGIN # REJECT #
00428 M01S00413.fsescrn +++|
00429 M01S00414.fsescrn +++|#
00430 M01S00415.fsescrn +++|** REJECT - REJECT CHANGE.
00431 M01S00416.fsescrn +++|*
00432 M01S00417.fsescrn +++|* A KEYBOARD CHANGE WAS MADE ON A ROW THAT IN NOT ALLOWED.
00433 M01S00418.fsescrn +++|* FLAG THE ROW FOR REPAINT AND IF ITS A TITLE ROW, INDICATE
00434 M01S00419.fsescrn +++|* A TOTAL REPAINT.
00435 M01S00420.fsescrn +++|*
00436 M01S00421.fsescrn +++|* PROC REJECT
00437 M01S00422.fsescrn +++|#
00438 M01S00423.fsescrn +++|
00439 M01S00424.fsescrn +++| ROWPAINT[YCURSOR]=TRUE;
00440 M01S00425.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TITLE" THEN
00441 M01S00426.fsescrn +++| BEGIN
00442 M01S00427.fsescrn +++| IF ROWSPLIT[YCURSOR] EQ 1 THEN TITLE1LINE[0]=NULLIN;
00443 M01S00428.fsescrn +++| ELSE TITLE2LINE[0]=NULLIN;
00444 M01S00429.fsescrn +++| END
00445 M01S00430.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TITLE"
00446 M01S00431.fsescrn +++| OR ROWTYPE[YCURSOR] EQ ROWST"LABEL"
00447 M01S00432.fsescrn +++| OR ROWTYPE[YCURSOR] EQ ROWST"RESPONSE" THEN
00448 M01S00433.fsescrn +++| BEGIN
00449 M01S00434.fsescrn +++| ERRSTRING = "CHANGES OUTSIDE OF TEXT AREA DISCARDED$";
00450 M01S00435.fsescrn +++| END
00451 M01S00436.fsescrn +++|
00452 M01S00437.fsescrn +++| END # REJECT #
00453 M01S00438.fsescrn +++|
00454 M01S00439.fsescrn +++|
00455 M01S00440.fsescrn +++| PROC MOVETEXT(TEXTLIN,OFFSET,FENCE);
00456 M01S00441.fsescrn +++| BEGIN
00457 M01S00442.fsescrn +++|#
00458 M01S00443.fsescrn +++|** MOVETEXT - UPDATE LINE BUFFER WITH OVERSTRIKE.
00459 M01S00444.fsescrn +++|*
00460 M01S00445.fsescrn +++|* ENTRY TEXTLIN - WHICH LINE BUFFER TO UPDATE.
00461 M01S00446.fsescrn +++|* XCURSOR, OFFSET - WHERE TO UPDATE.
00462 M01S00447.fsescrn +++|* CURSPLIT, YCURSOR - WHERE WE ARE.
00463 M01S00448.fsescrn +++|* FENCE - RIGHT HAND BOUNDARY FOR CHANGES.
00464 M01S00449.fsescrn +++|* ASCII[CURFILE] - INDICATES CASE SUPPRESSION.
00465 M01S00450.fsescrn +++|* TABCHAR - SOFT TAB CHARACTER.
00466 M01S00451.fsescrn +++|* VTCHAR - THE CHARACTER TO OVERSTRIKE.
00467 M01S00452.fsescrn +++|*
00468 M01S00453.fsescrn +++|* EXIT THE CHARACTER IS IN PLACE IF POSSIBLE.
00469 M01S00454.fsescrn +++|* SOFTTAB - POSSIBLY TRUE.
00470 M01S00455.fsescrn +++|* ROWPAINT[YCURSOR] - POSSIBLY TRUE.
00471 M01S00456.fsescrn +++|*
00472 M01S00457.fsescrn +++|* MACROS SETCHAR.
00473 M01S00458.fsescrn +++|*
00474 M01S00459.fsescrn +++|* CALLS EXTENDC, DSPLCOD.
00475 M01S00460.fsescrn +++|#
00476 M01S00461.fsescrn +++|
00477 M01S00462.fsescrn +++| ARRAY TEXTLIN[0:99];
00478 M01S00463.fsescrn +++| BEGIN # ARRAY TEXTLIN #
00479 M01S00464.fsescrn +++| ITEM TEXTLINE I; # LINE BUFFER TO UPDATE #
00480 M01S00465.fsescrn +++| END # ARRAY TEXTLIN #
00481 M01S00466.fsescrn +++|
00482 M01S00467.fsescrn +++| ITEM OFFSET I; # COLUMN OFFSET #
00483 M01S00468.fsescrn +++| ITEM FENCE I; # RIGHT SIDE BOUNDARY #
00484 M01S00469.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE #
00485 M01S00470.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE #
00486 M01S00471.fsescrn +++|
00487 M01S00472.fsescrn +++| TMP2=XCURSOR+OFFSET;
00488 M01S00473.fsescrn +++| IF TMP2 GQ FENCE THEN RETURN;
00489 M01S00474.fsescrn +++| EXTENDC(TEXTLIN,TMP2);
00490 M01S00475.fsescrn +++| TMP1=XLTXPINT[VTCHAR];
00491 M01S00476.fsescrn +++| IF ASCII[CURFILE] LQ 1 THEN # SUPPRESS LOWER CASE #
00492 M01S00477.fsescrn +++| BEGIN
00493 M01S00478.fsescrn +++| # NEXT CODE IS DEPENDENT ON PRECISE VALUES OF INTERNAL CHARSET #
00494 M01S00479.fsescrn +++| CONTROL IFNQ CLEFTCURL,O"133"; DEFERROR; CONTROL FI;
00495 M01S00480.fsescrn +++| CONTROL IFNQ CVERTICAL,O"134"; DEFERROR; CONTROL FI;
00496 M01S00481.fsescrn +++| CONTROL IFNQ CRITECURL,O"135"; DEFERROR; CONTROL FI;
00497 M01S00482.fsescrn +++| CONTROL IFNQ CTILDE,O"136"; DEFERROR; CONTROL FI;
00498 M01S00483.fsescrn +++| CONTROL IFNQ CGRAVE,O"100"; DEFERROR; CONTROL FI;
00499 M01S00484.fsescrn +++| CONTROL IFNQ CCOLON,O"000"; DEFERROR; CONTROL FI;
00500 M01S00485.fsescrn +++| # ISSUE WARNING FOR NON-EXISTENT DISPLAY CODE CHARACTERS #
00501 M01S00486.fsescrn +++| IF (TMP1 GQ O"133" AND TMP1 LQ O"136")
00502 M01S00487.fsescrn +++| OR (TMP1 EQ O"100") THEN ROWPAINT[YCURSOR]=TRUE;
00503 M01S00488.fsescrn +++| IF (B<00,01>MEM[CSMR] EQ 0)
00504 M01S00489.fsescrn +++| AND (TMP1 EQ O"000") THEN ROWPAINT[YCURSOR]=TRUE;
00505 M01S00490.fsescrn +++| DSPLCOD(TMP1); # SUPPRESS LOWER CASE #
00506 M01S00491.fsescrn +++| END
00507 M01S00492.fsescrn +++| SETCHAR(TEXTLINE,TMP2,TMP1);
00508 M01S00493.fsescrn +++| IF TMP1 EQ TABCHAR THEN
00509 M01S00494.fsescrn +++| BEGIN
00510 M01S00495.fsescrn +++| SOFTTAB=TRUE;
00511 M01S00496.fsescrn +++| ROWPAINT[YCURSOR]=TRUE;
00512 M01S00497.fsescrn +++| END
00513 M01S00498.fsescrn +++| END # MOVETEXT #
00514 M01S00499.fsescrn +++|
00515 M01S00500.fsescrn +++|
00516 M01S00501.fsescrn +++| PROC INSTEXT(TEXTLIN,OFFSET,FENCE);
00517 M01S00502.fsescrn +++| BEGIN
00518 M01S00503.fsescrn +++|#
00519 M01S00504.fsescrn +++|** INSTEXT - OPEN UP SPACE FOR CHARACTER INSERTION.
00520 M01S00505.fsescrn +++|*
00521 M01S00506.fsescrn +++|* ENTRY SAME AS MOVETEXT ROUTINE.
00522 M01S00507.fsescrn +++|*
00523 M01S00508.fsescrn +++|* EXIT THE CHARACTER SPACE IS OPENED UP.
00524 M01S00509.fsescrn +++|*
00525 M01S00510.fsescrn +++|* MACROS SETCHAR.
00526 M01S00511.fsescrn +++|*
00527 M01S00512.fsescrn +++|* CALLS RSHIFT, LSHIFT.
00528 M01S00513.fsescrn +++|#
00529 M01S00514.fsescrn +++|
00530 M01S00515.fsescrn +++| ARRAY TEXTLIN[0:99];
00531 M01S00516.fsescrn +++| BEGIN # ARRAY TEXTLIN #
00532 M01S00517.fsescrn +++| ITEM TEXTLINE I; # LINE BUFFER TO UPDATE #
00533 M01S00518.fsescrn +++| END # ARRAY TEXTLIN #
00534 M01S00519.fsescrn +++|
00535 M01S00520.fsescrn +++| ITEM OFFSET I; # COLUMN OFFSET #
00536 M01S00521.fsescrn +++| ITEM FENCE I; # RIGHT SIDE BOUNDARY #
00537 M01S00522.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE #
00538 M01S00523.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE #
00539 M01S00524.fsescrn +++|
00540 M01S00525.fsescrn +++| TMP1=XCURSOR+OFFSET;
00541 M01S00526.fsescrn +++| IF TMP1 GQ FENCE THEN RETURN;
00542 M01S00527.fsescrn +++| RSHIFT(TEXTLIN,TMP1,1);
00543 M01S00528.fsescrn +++| TMP2=XLTXPINT[VTCHAR];
00544 M01S00529.fsescrn +++| IF ASCII[CURFILE] LQ 1 THEN # SUPPRESS LOWER CASE #
00545 M01S00530.fsescrn +++| BEGIN
00546 M01S00531.fsescrn +++| # NEXT CODE IS DEPENDENT ON PRECISE VALUES OF INTERNAL CHARSET #
00547 M01S00532.fsescrn +++| CONTROL IFNQ CLEFTCURL,O"133"; DEFERROR; CONTROL FI;
00548 M01S00533.fsescrn +++| CONTROL IFNQ CVERTICAL,O"134"; DEFERROR; CONTROL FI;
00549 M01S00534.fsescrn +++| CONTROL IFNQ CRITECURL,O"135"; DEFERROR; CONTROL FI;
00550 M01S00535.fsescrn +++| CONTROL IFNQ CTILDE,O"136"; DEFERROR; CONTROL FI;
00551 M01S00536.fsescrn +++| CONTROL IFNQ CGRAVE,O"100"; DEFERROR; CONTROL FI;
00552 M01S00537.fsescrn +++| CONTROL IFNQ CCOLON,O"000"; DEFERROR; CONTROL FI;
00553 M01S00538.fsescrn +++| # ISSUE WARNING FOR NON-EXISTENT DISPLAY CODE CHARACTERS #
00554 M01S00539.fsescrn +++| IF (TMP2 GQ O"133" AND TMP2 LQ O"136")
00555 M01S00540.fsescrn +++| OR (TMP2 EQ O"100") THEN ROWPAINT[YCURSOR]=TRUE;
00556 M01S00541.fsescrn +++| IF (B<00,01>MEM[CSMR] EQ 0)
00557 M01S00542.fsescrn +++| AND (TMP2 EQ O"000") THEN ROWPAINT[YCURSOR]=TRUE;
00558 M01S00543.fsescrn +++| DSPLCOD(TMP2); # SUPPRESS LOWER CASE #
00559 M01S00544.fsescrn +++| END
00560 M01S00545.fsescrn +++| SETCHAR(TEXTLINE,TMP1,TMP2);
00561 M01S00546.fsescrn +++| IF TMP2 EQ TABCHAR THEN
00562 M01S00547.fsescrn +++| BEGIN
00563 M01S00548.fsescrn +++| SOFTTAB=TRUE;
00564 M01S00549.fsescrn +++| ROWPAINT[YCURSOR]=TRUE;
00565 M01S00550.fsescrn +++| END
00566 M01S00551.fsescrn +++| IF FENCE LS BUFCM1 THEN
00567 M01S00552.fsescrn +++| BEGIN
00568 M01S00553.fsescrn +++| LSHIFT(TEXTLIN,EDITFIELD+1,1);
00569 M01S00554.fsescrn +++| END
00570 M01S00555.fsescrn +++| END # INSTEXT #
00571 M01S00556.fsescrn +++|
00572 M01S00557.fsescrn +++|
00573 M01S00558.fsescrn +++| PROC DELTEXT(TEXTLIN,OFFSET,FENCE);
00574 M01S00559.fsescrn +++| BEGIN
00575 M01S00560.fsescrn +++|#
00576 M01S00561.fsescrn +++|** DELTEXT - DELETE ONE CHARACTER.
00577 M01S00562.fsescrn +++|*
00578 M01S00563.fsescrn +++|* ENTRY SAME AS MOVETEXT.
00579 M01S00564.fsescrn +++|*
00580 M01S00565.fsescrn +++|* EXIT TEXT SHIFTED TO CLOSEUP ONE PLACE.
00581 M01S00566.fsescrn +++|*
00582 M01S00567.fsescrn +++|* MACROS SETCHAR.
00583 M01S00568.fsescrn +++|*
00584 M01S00569.fsescrn +++|* CALLS LSHIFT, RSHIFT.
00585 M01S00570.fsescrn +++|#
00586 M01S00571.fsescrn +++|
00587 M01S00572.fsescrn +++| ARRAY TEXTLIN[0:99];
00588 M01S00573.fsescrn +++| BEGIN # ARRAY TEXTLIN #
00589 M01S00574.fsescrn +++| ITEM TEXTLINE I; # LINE BUFFER TO UPDATE #
00590 M01S00575.fsescrn +++| END # ARRAY TEXTLIN #
00591 M01S00576.fsescrn +++|
00592 M01S00577.fsescrn +++| ITEM OFFSET I; # COLUMN OFFSET #
00593 M01S00578.fsescrn +++| ITEM FENCE I; # RIGHT SIDE BOUNDARY #
00594 M01S00579.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE #
00595 M01S00580.fsescrn +++|
00596 M01S00581.fsescrn +++| TMP1=XCURSOR+OFFSET;
00597 M01S00582.fsescrn +++| IF TMP1 GQ FENCE THEN RETURN;
00598 M01S00583.fsescrn +++| LSHIFT(TEXTLIN,TMP1+1,1);
00599 M01S00584.fsescrn +++| IF FENCE LS BUFCM1 THEN
00600 M01S00585.fsescrn +++| BEGIN
00601 M01S00586.fsescrn +++| RSHIFT(TEXTLIN,EDITFIELD-1,1);
00602 M01S00587.fsescrn +++| SETCHAR(TEXTLINE,EDITFIELD-1,CBLANK);
00603 M01S00588.fsescrn +++| END
00604 M01S00589.fsescrn +++| END # DELTEXT #
00605 M01S00590.fsescrn +++|
00606 M01S00591.fsescrn +++|
00607 M01S00592.fsescrn +++| PROC DSERRJMP(STR); # DOSCREEN ERROR JUMP #
00608 M01S00593.fsescrn +++| IOBEGIN(DSERRJMP)
00609 M01S00594.fsescrn +++|#
00610 M01S00595.fsescrn +++|** DSERRJMP - ERROR JUMP FROM DOSCREEN.
00611 M01S00596.fsescrn +++|*
00612 M01S00597.fsescrn +++|* ENTRY STR - ERROR MESSAGE.
00613 M01S00598.fsescrn +++|* PROMPTING - NORMAL OR SPECIAL DISPLAY.
00614 M01S00599.fsescrn +++|* COMMANDROW - SETUP.
00615 M01S00600.fsescrn +++|*
00616 M01S00601.fsescrn +++|* EXIT VIA ERRJUMP.
00617 M01S00602.fsescrn +++|* CMDLIN - NULLED OUT.
00618 M01S00603.fsescrn +++|* ERRSTRING - CONTAINS MESSAGE.
00619 M01S00604.fsescrn +++|* TOKENPOS - MINUS ONE FOR ERRJUMP.
00620 M01S00605.fsescrn +++|* ROWPAINT[COMMANDROW] - TRUE.
00621 M01S00606.fsescrn +++|* ROWPAINT[ALL] - POSSIBLY TRUE.
00622 M01S00607.fsescrn +++|*
00623 M01S00608.fsescrn +++|* CALLS PAINTALL, VDTBEL, VDTDRN, ERRJUMP.
00624 M01S00609.fsescrn +++|*
00625 M01S00610.fsescrn +++|* NOTE THIS ROUTINE UNCONDITIONALLY USES ERRJUMP, THUS
00626 M01S00611.fsescrn +++|* CONTROL WILL NEVER RETURN TO THE CALLER. DSERRJMP
00627 M01S00612.fsescrn +++|* IS THE ONLY WAY TO CALL ERRJUMP FROM DOSCREEN OR
00628 M01S00613.fsescrn +++|* ANY OF ITS INTERNAL ROUTINES.
00629 M01S00614.fsescrn +++|#
00630 M01S00615.fsescrn +++| ITEM STR C(40);
00631 M01S00616.fsescrn +++| ERRSTRING=STR;
00632 M01S00617.fsescrn +++| ROWPAINT[COMMANDROW]=TRUE;
00633 M01S00618.fsescrn +++| IF PROMPTING THEN PAINTALL;
00634 M01S00619.fsescrn +++| VDTBEL;
00635 M01S00620.fsescrn +++| VDTDRN; # ASSURE INPUT BUFFER CLEAN #
00636 M01S00621.fsescrn +++| TOKENPOS=-1; # ASSURE OLD CURSOR POSITION #
00637 M01S00622.fsescrn +++| CMDLINE[0]=NULLIN;
00638 M01S00623.fsescrn +++| ERRJUMP(ERRSTRING); # CONTROL DOES NOT RETURN #
00639 M01S00624.fsescrn +++| IOEND # OF DSERRJMP #
00640 M01S00625.fsescrn +++|
00641 M01S00626.fsescrn +++| PROC SETCMD(CMD);
00642 M01S00627.fsescrn +++| BEGIN
00643 M01S00628.fsescrn +++|#
00644 M01S00629.fsescrn +++|** SETCMD - ADD CHARACTER STRING TO COMMAND BUFFER.
00645 M01S00630.fsescrn +++|*
00646 M01S00631.fsescrn +++|* ENTRY CMD - STRING TO BE ADDED, 10 CHARS IN DISPLAY CODE.
00647 M01S00632.fsescrn +++|* CMDLIN - ANY EXISTING COMMAND CONTENT. (INTERNAL CODE)
00648 M01S00633.fsescrn +++|*
00649 M01S00634.fsescrn +++|* EXIT CMDLIN - UPDATED.
00650 M01S00635.fsescrn +++|*
00651 M01S00636.fsescrn +++|* MACROS SETCHAR.
00652 M01S00637.fsescrn +++|*
00653 M01S00638.fsescrn +++|* CALLS LENGTH.
00654 M01S00639.fsescrn +++|*
00655 M01S00640.fsescrn +++|* USES SCRNPT3, SCRNPT4, SCRNPT5.
00656 M01S00641.fsescrn +++|#
00657 M01S00642.fsescrn +++| ITEM CMD C(10);
00658 M01S00643.fsescrn +++| SCRNPT4=LENGTH(CMDLIN);
00659 M01S00644.fsescrn +++| IF SCRNPT4+10 LS BUFCM1 THEN
00660 M01S00645.fsescrn +++| BEGIN
00661 M01S00646.fsescrn +++| SETCHAR(CMDLINE,SCRNPT4,CSEMCOLON);
00662 M01S00647.fsescrn +++| FOR SCRNPT5=0 STEP 1 UNTIL 9 DO
00663 M01S00648.fsescrn +++| BEGIN
00664 M01S00649.fsescrn +++| SCRNPT3=XLTDSPINT[C<SCRNPT5,1>CMD];
00665 M01S00650.fsescrn +++| SETCHAR(CMDLINE,SCRNPT4+1+SCRNPT5,SCRNPT3);
00666 M01S00651.fsescrn +++| END
00667 M01S00652.fsescrn +++| SETCHAR(CMDLINE,SCRNPT4+11,CENDLINE);
00668 M01S00653.fsescrn +++| END
00669 M01S00654.fsescrn +++| END # OF SETCMD #
00670 M01S00655.fsescrn +++|
00671 M01S00656.fsescrn +++|
00672 M01S00657.fsescrn +++| PROC ADDTOCMD;
00673 M01S00658.fsescrn +++| BEGIN
00674 M01S00659.fsescrn +++| # ADD TEXT FROM KEYLINE TO CMDLINE #
00675 M01S00660.fsescrn +++| SCRNPT3=LENGTH(CMDLIN);
00676 M01S00661.fsescrn +++| SCRNPT2=LENGTH(KEYLIN);
00677 M01S00662.fsescrn +++| IF SCRNPT3+SCRNPT2 LS BUFCM1 THEN
00678 M01S00663.fsescrn +++| BEGIN
00679 M01S00664.fsescrn +++| SETCHAR(CMDLINE,SCRNPT3,CSEMCOLON);
00680 M01S00665.fsescrn +++| FOR SCRNPT4=0 STEP 1 UNTIL SCRNPT2 DO
00681 M01S00666.fsescrn +++| BEGIN
00682 M01S00667.fsescrn +++| GETCHAR(KEYLINE,SCRNPT4,SCRNPT5);
00683 M01S00668.fsescrn +++| SETCHAR(CMDLINE,SCRNPT3+SCRNPT4+1,SCRNPT5);
00684 M01S00669.fsescrn +++| IF (SCRNPT5 EQ CAMPER) AND (NOT PROMPTING)
00685 M01S00670.fsescrn +++| AND (EXPANDAT LS 0) THEN EXPANDAT=SCRNPT3+SCRNPT4+1;
00686 M01S00671.fsescrn +++| END
00687 M01S00672.fsescrn +++| END
00688 M01S00673.fsescrn +++| END # ADDTOCMD #
00689 M01S00674.fsescrn +++|
00690 M01S00675.fsescrn +++|
00691 M01S00676.fsescrn +++| PROC INCRCURSOR;
00692 M01S00677.fsescrn +++|# TITLE INCRCURSOR - INCREMENT CURSOR. #
00693 M01S00678.fsescrn +++|
00694 M01S00679.fsescrn +++| BEGIN # INCRCURSOR #
00695 M01S00680.fsescrn +++|
00696 M01S00681.fsescrn +++|#
00697 M01S00682.fsescrn +++|** INCRCURSOR - INCREMENT CURSOR.
00698 M01S00683.fsescrn +++|*
00699 M01S00684.fsescrn +++|* EXIT XCURSOR - ZERO.
00700 M01S00685.fsescrn +++|* YCURSOR - USERS CURSOR OR ONE PLACE BEYOND.
00701 M01S00686.fsescrn +++|*
00702 M01S00687.fsescrn +++|* CALLS SETCURSOR.
00703 M01S00688.fsescrn +++|#
00704 M01S00689.fsescrn +++|
00705 M01S00690.fsescrn +++| SETCURSOR;
00706 M01S00691.fsescrn +++| XCURSOR=0;
00707 M01S00692.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT" THEN YCURSOR=YCURSOR+1;
00708 M01S00693.fsescrn +++|
00709 M01S00694.fsescrn +++| END # INCRCURSOR #
00710 M01S00695.fsescrn +++|PAGE # START OF DOSCREEN MAIN CODE #
00711 M01S00696.fsescrn +++|
00712 M01S00697.fsescrn +++|
00713 M01S00698.fsescrn +++| SCREENLIMIT=0;
00714 M01S00699.fsescrn +++| COMPUTEDPOS=FALSE;
00715 M01S00700.fsescrn +++| VDTEOO; # ISSUE INPUT CONTROL PROMPT #
00716 M01S00701.fsescrn +++| VDTPPI; # GET INPUT, VERIFY XPARENT #
00717 M01S00702.fsescrn +++| VDTBOO; # START NEW OUTPUT CYCLE #
Line S00703 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc24 |
Seq # *Modification Id* Act
----------------------------+
00718 M02S00703.fsesc24 ---| IF VTORDN NQ 0 THEN DSERRJMP("PLEASE RE-ENTER INPUT$");
00719 M01S00001.fsesc24 +++| IF VTORDN NQ 0 THEN
00720 M01S00002.fsesc24 +++| BEGIN # IF SOME INPUT WAS LOST #
00721 M01S00003.fsesc24 +++| VDTBEL;
00722 M01S00004.fsesc24 +++| TOKENPOS=0;
00723 M01S00005.fsesc24 +++| SETCMD("SS");
00724 M01S00006.fsesc24 +++| ERRSTRING="PLEASE RE-ENTER INPUT$";
00725 M01S00007.fsesc24 +++| GOTO DSEOI; # SIMULATE *ENTER* #
00726 M01S00008.fsesc24 +++| END
00727 M01S00704.fsescrn +++| XCURSOR=0;
00728 M01S00705.fsescrn +++|
00729 M01S00706.fsescrn +++| FIRSTEVENT=TRUE;
00730 M01S00707.fsescrn +++| GOTO DSLOOP2;
00731 M01S00708.fsescrn +++|
00732 M01S00709.fsescrn +++|#
00733 M01S00710.fsescrn +++| SCREEN ROUTINES RETURN BASED UPON WHERE THEY WOULD LIKE
00734 M01S00711.fsescrn +++| THE CURSOR IF <EOL> WERE ENTERED IMMEDIATELY AFTER THE
00735 M01S00712.fsescrn +++| ROUTINE. THE CHOICES ARE
00736 M01S00713.fsescrn +++|
00737 M01S00714.fsescrn +++| DSLOOP: LEAVE THE CURSOR WHERE IT IS.
00738 M01S00715.fsescrn +++| DSX0Y1: SET X TO ZERO, INCREMENT Y IF IN VALID TEXT.
00739 M01S00716.fsescrn +++| LEAVE Y WHERE IT IS IF CANNOT INCREMENT.
00740 M01S00717.fsescrn +++|#
00741 M01S00718.fsescrn +++|
00742 M01S00719.fsescrn +++|DSX0Y1:
00743 M01S00720.fsescrn +++| INCRCURSOR;
00744 M01S00721.fsescrn +++|DSLOOP:
00745 M01S00722.fsescrn +++| FIRSTEVENT=FALSE;
00746 M01S00723.fsescrn +++|DSLOOP2:
00747 M01S00724.fsescrn +++| OLDVTXCURS=VTXCUR;
00748 M01S00725.fsescrn +++| OLDVTYCURS=VTYCUR;
00749 M01S00726.fsescrn +++| VDTIINP;
00750 M01S00727.fsescrn +++|DSLOOP3:
00751 M01S00728.fsescrn +++| IF SCREENLIMIT LS 2 THEN
00752 M01S00729.fsescrn +++| BEGIN
00753 M01S00730.fsescrn +++| IF NEEDCURSOR[VTORDN] THEN SETCURSOR;
00754 M01S00731.fsescrn +++| IF NEEDALIGN[VTORDN] THEN ALIGN;
00755 M01S00732.fsescrn +++| IF NEEDCLEAN[VTORDN] THEN CLEANLINE;
00756 M01S00733.fsescrn +++| END
00757 M01S00734.fsescrn +++| IF NEEDLIMIT[VTORDN] NQ 0 THEN
00758 M01S00735.fsescrn +++| BEGIN
00759 M01S00736.fsescrn +++| IF NEEDLIMIT[VTORDN] LS SCREENLIMIT AND SCREENLIMIT NQ 0 THEN
00760 M01S00737.fsescrn +++| BEGIN
00761 M01S00738.fsescrn +++| PAINTALL;
00762 M01S00001.fsesc29 +++| VTINCR = 0; # DISABLE CURSOR ADVANCE #
00763 M01S00739.fsescrn +++| DSERRJMP("RETURN MUST FOLLOW FUNCTION KEY$");
00764 M01S00740.fsescrn +++| END
00765 M01S00741.fsescrn +++| SCREENLIMIT=NEEDLIMIT[VTORDN];
00766 M01S00742.fsescrn +++| END
Line S00743 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc26 |
Seq # *Modification Id* Act
----------------------------+
00767 M02S00743.fsesc26 ---| IF NEEDUNLOCK[VTORDN] AND YCURSOR NQ COMMANDROW THEN
00768 M01S00001.fsesc26 +++| IF NEEDUNLOCK[VTORDN] AND ROWTYPE[YCURSOR] EQ ROWST"TEXT" THEN
00769 M01S00744.fsescrn +++| BEGIN
00770 M01S00745.fsescrn +++| IF LOCKED[CURFILE] NQ 0 THEN
00771 M01S00746.fsescrn +++| BEGIN
00772 M01S00747.fsescrn +++| ROWPAINT[YCURSOR]=TRUE; # CURRENT LINE IS SPOILED #
00773 M01S00748.fsescrn +++| IF VTORDN EQ SCREENST"INSL" OR VTORDN EQ SCREENST"DELL" THEN
00774 M01S00749.fsescrn +++| BEGIN # LOWER LINES ARE SPOILED #
00775 M01S00750.fsescrn +++| PAINTSPLIT; # AT LEAST TILL FIELD PROTECT #
00776 M01S00751.fsescrn +++| IF NOT TABVTPROTM[0] THEN PAINTREST(YCURSOR);
00777 M01S00752.fsescrn +++| END
00778 M01S00753.fsescrn +++| DSERRJMP("CANNOT CHANGE READ-ONLY FILE$");
00779 M01S00754.fsescrn +++| END
00780 M01S00755.fsescrn +++| END
00781 M01S00756.fsescrn +++| HARDFN=TRUE;
00782 M01S00757.fsescrn +++| GOTO SCREENSW[VTORDN];
00783 M01S00758.fsescrn +++|
Line S00759 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00784 M02S00759.ns2641 ---|DSDUMMY: DSUP: DSDOWN: DSLEFT: DSRIGHT: DSRET:
Line S00760 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
00785 M02S00760.ns2641 ---|DSNOOP: DSCOORD: DSPROTECT: DSRSRV1: DSRSRV2:
00786 M01S00013.ns2641 +++|DSUP:
00787 M01S00014.ns2641 +++|DSDOWN:
00788 M01S00015.ns2641 +++|DSRET:
00789 M01S00016.ns2641 +++|DSNOOP:
00790 M01S00017.ns2641 +++|DSCOORD:
00791 M01S00018.ns2641 +++|DSPROTECT:
00792 M01S00761.fsescrn +++| GOTO DSLOOP;
00793 M01S00762.fsescrn +++|
00794 M01S00763.fsescrn +++|
00795 M01S00764.fsescrn +++|DSPOS:
00796 M01S00765.fsescrn +++|DSRESET:
00797 M01S00766.fsescrn +++| GOTO DSBAD;
00798 M01S00767.fsescrn +++|
00799 M01S00768.fsescrn +++|DSEOI:
00800 M01S00769.fsescrn +++| # NOTE THAT AN EOI VDT EVENT IS NOT TAGGED FOR EITHER CURSOR #
00801 M01S00770.fsescrn +++| # SETTING OR FILE POSITION ALIGNMENT. THE DSEOI SECTION DOES #
Line S00771 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00802 M02S00771.fsesc27 ---| # THIS MANUALLY SO WE CAN ALIGN THE FILE ON THE BASIS OF THE #
Line S00772 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00803 M02S00772.fsesc27 ---| # LAST SIGNIFICANT CURSOR ADDRESS BEFORE THE RETURN KEY WAS #
Line S00773 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00804 M02S00773.fsesc27 ---| # STRUCK, WITHOUT BEING CONFUSED BY THE CURSOR POSITION FOR #
Line S00774 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00805 M02S00774.fsesc27 ---| # THE RETURN KEY ITSELF. #
00806 M01S00001.fsesc27 +++| # THIS MANUALLY TO ALLOW FOR REACTION TO VARYING CONDITIONS. #
00807 M01S00775.fsescrn +++| CLEANLINE;
00808 M01S00776.fsescrn +++| IF SCREENLIMIT LS 2 THEN
00809 M01S00777.fsescrn +++| BEGIN
00810 M01S00002.fsesc27 +++| IF COMPUTEDPOS THEN SETCURSOR;
00811 M01S00778.fsescrn +++| ALIGN;
Line S00779 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00812 M02S00779.fsesc27 ---| IF COMPUTEDPOS THEN
Line S00780 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00813 M02S00780.fsesc27 ---| BEGIN
Line S00781 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00814 M02S00781.fsesc27 ---| IF OLDVTXCURS NQ VTXCUR OR OLDVTYCURS NQ VTYCUR THEN
Line S00782 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00815 M02S00782.fsesc27 ---| BEGIN # USER MOVED CURSOR BEFORE EOI #
Line S00783 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00816 M02S00783.fsesc27 ---| INCRCURSOR;
Line S00784 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00817 M02S00784.fsesc27 ---| END
Line S00785 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00818 M02S00785.fsesc27 ---| END
Line S00786 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc27 |
Seq # *Modification Id* Act
----------------------------+
00819 M02S00786.fsesc27 ---| ELSE INCRCURSOR;
00820 M01S00003.fsesc27 +++| INCRCURSOR;
00821 M01S00787.fsescrn +++| IF LENGTH(CMDLIN) EQ 0 AND YCURSOR EQ VTYCUR+1 AND
Line S00788 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc25 |
Seq # *Modification Id* Act
----------------------------+
00822 M02S00788.fsesc25 ---| VTYCUR EQ TITLEROW[CURSPLIT]+NUMROWS[CURSPLIT] THEN
00823 M01S00001.fsesc25 +++| VTYCUR EQ TITLEROW[CURSPLIT]+NUMROWS[CURSPLIT] AND
00824 M01S00002.fsesc25 +++| NOT PROMPTING THEN
00825 M01S00789.fsescrn +++| BEGIN # IF AUTO HALF PAGE FORWARD #
00826 M01S00790.fsescrn +++| TOPS(CURSPLIT)=BOTS(CURSPLIT)-NUMROWS[CURSPLIT]/2;
00827 M01S00791.fsescrn +++| SETTOPS(CURSPLIT);
00828 M01S00792.fsescrn +++| XCURSOR=0;
00829 M01S00793.fsescrn +++| YCURSOR=BOTS(CURSPLIT);
00830 M01S00794.fsescrn +++| YCURSOR=LTOY(YCURSOR,CURSPLIT);
00831 M01S00795.fsescrn +++| SETBOTS(CURSPLIT);
00832 M01S00796.fsescrn +++| PAINTSPLIT;
00833 M01S00797.fsescrn +++| END
00834 M01S00798.fsescrn +++| ALIGN;
00835 M01S00799.fsescrn +++| END
00836 M01S00800.fsescrn +++| HARDFN = FALSE; # CLEAR HARD FUNCTION PRESSED #
00837 M01S00801.fsescrn +++| VDTDRN; # ASSURE CLEAN INPUT BUFFER #
00838 M01S00802.fsescrn +++| IF FIRSTEVENT THEN CMDLINE[0]=NULLIN;
00839 M01S00803.fsescrn +++| IF AUTOINDENT THEN
00840 M01S00804.fsescrn +++| BEGIN # IF SET JUMP ENABLED #
00841 M01S00805.fsescrn +++| IF XCURSOR EQ 0 AND YCURSOR NQ COMMANDROW
00842 M01S00806.fsescrn +++| AND LENGTH(CMDLIN) EQ 0 THEN
00843 M01S00807.fsescrn +++| BEGIN # IF REASONABLE TO DO #
00844 M01S00808.fsescrn +++| SCRNPT3 = 0;
00845 M01S00809.fsescrn +++| SCRNPT4 = 0;
Line S00810 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc21 |
Seq # *Modification Id* Act
----------------------------+
00846 M02S00810.fsesc21 ---| IF LENGTH(LIN) EQ 0 THEN
00847 M01S00001.fsesc21 +++| IF NOTEXT THEN
00848 M01S00811.fsescrn +++| BEGIN # IF CURRENT LINE IS EMPTY #
00849 M01S00812.fsescrn +++| SCRNPT4 = 1; # CHECK PREVIOUS LINE #
00850 M01S00813.fsescrn +++| BAKZ;
00851 M01S00814.fsescrn +++| END
Line S00815 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc21 |
Seq # *Modification Id* Act
----------------------------+
00852 M02S00815.fsesc21 ---| GETCHAR(LINE,XSHIFT[CURSPLIT],SCRNPT2);
Line S00816 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc21 |
Seq # *Modification Id* Act
----------------------------+
00853 M02S00816.fsesc21 ---| WHYLE SCRNPT2 EQ CBLANK DO
Line S00817 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc21 |
Seq # *Modification Id* Act
----------------------------+
00854 M02S00817.fsesc21 ---| BEGIN # COUNT LEADING BLANKS #
Line S00818 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc21 |
Seq # *Modification Id* Act
----------------------------+
00855 M02S00818.fsesc21 ---| SCRNPT3 = SCRNPT3 + 1;
Line S00819 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc21 |
Seq # *Modification Id* Act
----------------------------+
00856 M02S00819.fsesc21 ---| GETCHAR(LINE,XSHIFT[CURSPLIT]+SCRNPT3,SCRNPT2);
Line S00820 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc21 |
Seq # *Modification Id* Act
----------------------------+
00857 M02S00820.fsesc21 ---| END
00858 M01S00002.fsesc21 +++| IF NOT NOTEXT THEN
00859 M01S00003.fsesc21 +++| BEGIN # IF LINE IS NOT EMPTY #
00860 M01S00004.fsesc21 +++| GETCHAR(LINE,XSHIFT[CURSPLIT],SCRNPT2);
00861 M01S00005.fsesc21 +++| WHYLE SCRNPT2 EQ CBLANK DO
00862 M01S00006.fsesc21 +++| BEGIN # IF LEADING BLANK(S) #
00863 M01S00007.fsesc21 +++| SCRNPT3 = SCRNPT3 + 1;
00864 M01S00008.fsesc21 +++| GETCHAR(LINE,XSHIFT[CURSPLIT]+SCRNPT3,SCRNPT2);
00865 M01S00009.fsesc21 +++| END
00866 M01S00010.fsesc21 +++| END
00867 M01S00821.fsescrn +++| IF SCRNPT4 EQ 1 THEN FWDZ; # RESET IF NECESSARY #
00868 M01S00822.fsescrn +++| XCURSOR = SCRNPT3;
00869 M01S00823.fsescrn +++| END
00870 M01S00824.fsescrn +++| END
00871 M01S00825.fsescrn +++| IORET
00872 M01S00826.fsescrn +++|
00873 M01S00827.fsescrn +++|DSHOME:
00874 M01S00828.fsescrn +++| XCURSOR=VTOXPOS;
00875 M01S00829.fsescrn +++| YCURSOR=VTOYPOS;
00876 M01S00830.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT" OR ROWTYPE[YCURSOR]
00877 M01S00831.fsescrn +++| EQ ROWST"TITLE" THEN CURSPLIT=ROWSPLIT[YCURSOR];
00878 M01S00832.fsescrn +++| CURCURSOR=XCURSOR+XSHIFT[CURSPLIT];
00879 M01S00833.fsescrn +++| ALIGN;
00880 M01S00834.fsescrn +++| GOTO DSLOOP;
00881 M01S00835.fsescrn +++|
00882 M01S00836.fsescrn +++|DSCLREOL:
00883 M01S00837.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"COMMAND" THEN
00884 M01S00838.fsescrn +++| BEGIN
00885 M01S00839.fsescrn +++| SETCHAR(CMDLINE,XCURSOR,CENDLINE);
00886 M01S00840.fsescrn +++| IF XCURSOR EQ 0 THEN ROWPAINT[COMMANDROW] = FALSE;
00887 M01S00841.fsescrn +++| END
00888 M01S00842.fsescrn +++| ELSE IF ALIGNGOOD THEN
00889 M01S00843.fsescrn +++| BEGIN
00890 M01S00844.fsescrn +++| FOR SCRNPT1=XCURSOR+XSHIFT[CURSPLIT] STEP 1
00891 M01S00845.fsescrn +++| UNTIL EDITFIELD-1 DO SETCHAR(LINE,SCRNPT1,CBLANK);
00892 M01S00846.fsescrn +++| SETCHAR(LINE,BUFCHAR,CENDLINE);
00893 M01S00847.fsescrn +++| TRIMPAD;
00894 M01S00848.fsescrn +++| LINECHANGED=TRUE;
00895 M01S00849.fsescrn +++| END
00896 M01S00850.fsescrn +++| ELSE REJECT;
00897 M01S00851.fsescrn +++| GOTO DSX0Y1;
00898 M01S00852.fsescrn +++|
00899 M01S00853.fsescrn +++|DSCLRPAG: DSCLRUNP: DSCLREOP:
00900 M01S00854.fsescrn +++| PAINTALL;
00901 M01S00855.fsescrn +++| SETCMD("SETSCR");
00902 M01S00856.fsescrn +++| GOTO DSLOOP;
00903 M01S00857.fsescrn +++|
00904 M01S00858.fsescrn +++|DSCHAR:
00905 M01S00859.fsescrn +++| IF YCURSOR EQ COMMANDROW THEN
00906 M01S00860.fsescrn +++| BEGIN
00907 M01S00861.fsescrn +++| MOVETEXT(CMDLIN,0,BUFCM1);
00908 M01S00862.fsescrn +++| ROWPAINT[COMMANDROW] = TRUE;
00909 M01S00863.fsescrn +++| END
00910 M01S00864.fsescrn +++| ELSE
00911 M01S00865.fsescrn +++| BEGIN
00912 M01S00866.fsescrn +++| EXTEND;
00913 M01S00867.fsescrn +++| IF ALIGNGOOD THEN
00914 M01S00868.fsescrn +++| BEGIN
00915 M01S00869.fsescrn +++| SCRNPT1=LENGTH(LIN);
00916 M01S00870.fsescrn +++| MOVETEXT(LIN,XSHIFT[CURSPLIT],EDITFIELD);
00917 M01S00871.fsescrn +++| LINECHANGED=TRUE;
00918 M01S00872.fsescrn +++| END
00919 M01S00873.fsescrn +++| ELSE REJECT;
00920 M01S00874.fsescrn +++| END
00921 M01S00875.fsescrn +++| GOTO DSX0Y1;
00922 M01S00876.fsescrn +++|
00923 M01S00877.fsescrn +++|DSINSC:
00924 M01S00878.fsescrn +++| IF YCURSOR EQ COMMANDROW THEN
00925 M01S00879.fsescrn +++| BEGIN # IF COMMANDROW #
00926 M01S00880.fsescrn +++| ROWPAINT[COMMANDROW] = TRUE;
00927 M01S00881.fsescrn +++| INSTEXT(CMDLIN,0,BUFCM1);
00928 M01S00882.fsescrn +++| END
00929 M01S00883.fsescrn +++| ELSE
00930 M01S00884.fsescrn +++| BEGIN
00931 M01S00885.fsescrn +++| EXTEND;
00932 M01S00886.fsescrn +++| IF ALIGNGOOD THEN
00933 M01S00887.fsescrn +++| BEGIN
00934 M01S00888.fsescrn +++| INSTEXT(LIN,XSHIFT[CURSPLIT],EDITFIELD);
Line S00889 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00935 M02S00889.fsesc23 ---| IF CURRENT EQ REGLINE[MARKREG] AND MRKCHAR[0] GR -1 THEN
Line S00890 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00936 M02S00890.fsesc23 ---| BEGIN
Line S00891 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00937 M02S00891.fsesc23 ---| IF VTXCUR LS MRKCHAR[0] THEN
Line S00892 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00938 M02S00892.fsesc23 ---| BEGIN
Line S00893 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00939 M02S00893.fsesc23 ---| MRKCHAR[0] = MRKCHAR[0] + 1;
Line S00894 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00940 M02S00894.fsesc23 ---| END
Line S00895 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00941 M02S00895.fsesc23 ---| IF CURRENT EQ REGLINE[MARKREG+1] AND VTXCUR LQ MRKCHAR[1] THEN
Line S00896 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00942 M02S00896.fsesc23 ---| MRKCHAR[1] = MRKCHAR[1] + 1;
Line S00897 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00943 M02S00897.fsesc23 ---| END
00944 M01S00001.fsesc23 +++| IF CURRENT EQ REGLINE[MARKREG] AND VTXCUR LS MRKCHAR[0] THEN
00945 M01S00002.fsesc23 +++| MRKCHAR[0] = MRKCHAR[0] + 1; # IF INSERT BEFORE FIRST MARK #
00946 M01S00003.fsesc23 +++| IF CURRENT EQ REGLINE[MARKREG+1] AND VTXCUR LQ MRKCHAR[1] THEN
00947 M01S00004.fsesc23 +++| MRKCHAR[1] = MRKCHAR[1] + 1; # IF INSERT BEFORE LAST MARK #
00948 M01S00898.fsescrn +++| LINECHANGED=TRUE;
00949 M01S00899.fsescrn +++| END
00950 M01S00900.fsescrn +++| ELSE REJECT;
00951 M01S00901.fsescrn +++| END
00952 M01S00902.fsescrn +++| GOTO DSX0Y1;
00953 M01S00903.fsescrn +++|
00954 M01S00904.fsescrn +++|DSDELC:
00955 M01S00905.fsescrn +++| IF YCURSOR EQ COMMANDROW THEN
00956 M01S00906.fsescrn +++| BEGIN
00957 M01S00907.fsescrn +++| DELTEXT(CMDLIN,0,BUFCM1);
00958 M01S00908.fsescrn +++| IF LENGTH(CMDLIN) EQ 0 THEN ROWPAINT[COMMANDROW] = FALSE;
00959 M01S00909.fsescrn +++| END
00960 M01S00910.fsescrn +++| ELSE IF ALIGNGOOD THEN
00961 M01S00911.fsescrn +++| BEGIN
00962 M01S00912.fsescrn +++| IF HARDFN AND LENGTH(LIN) GR XSHIFT[CURSPLIT]+USRNUMCOL
00963 M01S00913.fsescrn +++| THEN ROWPAINT[YCURSOR]=TRUE;
00964 M01S00914.fsescrn +++| DELTEXT(LIN,XSHIFT[CURSPLIT],EDITFIELD);
Line S00915 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00965 M02S00915.fsesc23 ---| IF CURRENT EQ REGLINE[MARKREG] AND MRKCHAR[0] GR -1 THEN
Line S00916 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00966 M02S00916.fsesc23 ---| BEGIN
Line S00917 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00967 M02S00917.fsesc23 ---| IF VTXCUR LS MRKCHAR[0] THEN
Line S00918 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00968 M02S00918.fsesc23 ---| BEGIN
Line S00919 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00969 M02S00919.fsesc23 ---| MRKCHAR[0] = MRKCHAR[0] - 1;
Line S00920 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00970 M02S00920.fsesc23 ---| END
Line S00921 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00971 M02S00921.fsesc23 ---| IF CURRENT EQ REGLINE[MARKREG+1] AND VTXCUR LQ MRKCHAR[1] THEN
Line S00922 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc23 |
Seq # *Modification Id* Act
----------------------------+
00972 M02S00922.fsesc23 ---| MRKCHAR[1] = MRKCHAR[1] - 1;
00973 M01S00005.fsesc23 +++| IF CURRENT EQ REGLINE[MARKREG] AND VTXCUR LS MRKCHAR[0] THEN
00974 M01S00006.fsesc23 +++| MRKCHAR[0] = MRKCHAR[0] - 1; # IF DELETE BEFORE FIRST MARK #
00975 M01S00007.fsesc23 +++| IF CURRENT EQ REGLINE[MARKREG+1] AND VTXCUR LQ MRKCHAR[1] THEN
00976 M01S00008.fsesc23 +++| BEGIN # IF DELETE BEFORE LAST MARK #
00977 M01S00009.fsesc23 +++| MRKCHAR[1] = MRKCHAR[1] - 1;
00978 M01S00010.fsesc23 +++| IF REGLINE[MARKREG] LS CURRENT THEN
00979 M01S00011.fsesc23 +++| BEGIN # IF MORE THAN ONE MARKED LINE #
00980 M01S00012.fsesc23 +++| IF MRKCHAR[1] LS 0 THEN
00981 M01S00013.fsesc23 +++| BEGIN # IF NO MARKS LEFT ON LAST LINE #
00982 M01S00014.fsesc23 +++| REGLINE[MARKREG+1] = CURRENT - 1;
00983 M01S00015.fsesc23 +++| END
00984 M01S00016.fsesc23 +++| END
00985 M01S00017.fsesc23 +++| ELSE
00986 M01S00018.fsesc23 +++| BEGIN # IF ONLY ONE MARKED LINE #
00987 M01S00019.fsesc23 +++| IF MRKCHAR[1] LS MRKCHAR[0] OR MRKCHAR[1] LS 0 THEN
00988 M01S00020.fsesc23 +++| KILLMARKS = TRUE; # IF NO MARKS LEFT #
00989 M01S00021.fsesc23 +++| END
00990 M01S00923.fsescrn +++| END
00991 M01S00924.fsescrn +++| LINECHANGED=TRUE;
00992 M01S00925.fsescrn +++| END
00993 M01S00926.fsescrn +++| ELSE REJECT;
00994 M01S00927.fsescrn +++| GOTO DSX0Y1;
00995 M01S00928.fsescrn +++|
00996 M01S00929.fsescrn +++|DSINSL:
Line S00930 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
00997 M02S00930.fsesc31 ---| IF YTOL(YCURSOR,CURSPLIT) EQ BOTF(CURFILE) THEN EXTEND;
Line S00931 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
00998 M02S00931.fsesc31 ---| ELSE
00999 M01S00001.fsesc31 +++| EXTEND;
01000 M01S00002.fsesc31 +++| IF ALIGNGOOD THEN
01001 M01S00932.fsescrn +++| BEGIN
Line S00933 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01002 M02S00933.fsesc31 ---| EXTEND;
Line S00934 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01003 M02S00934.fsesc31 ---| IF ALIGNGOOD THEN
Line S00935 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01004 M02S00935.fsesc31 ---| BEGIN
Line S00936 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01005 M02S00936.fsesc31 ---| IF CURRENT NQ TOPS(CURSPLIT) THEN BAKZ;
Line S00937 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01006 M02S00937.fsesc31 ---| LINE[0]=NULLIN;
Line S00938 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01007 M02S00938.fsesc31 ---| INSX;
Line S00939 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01008 M02S00939.fsesc31 ---| END
Line S00940 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01009 M02S00940.fsesc31 ---| ELSE
Line S00941 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01010 M02S00941.fsesc31 ---| BEGIN
Line S00942 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01011 M02S00942.fsesc31 ---| REJECT;
Line S00943 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01012 M02S00943.fsesc31 ---| IF HARDFN THEN PAINTREST(YCURSOR);
Line S00944 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc31 |
Seq # *Modification Id* Act
----------------------------+
01013 M02S00944.fsesc31 ---| END
01014 M01S00003.fsesc31 +++| IF CURRENT NQ TOPS(CURSPLIT) THEN BAKZ;
01015 M01S00004.fsesc31 +++| LINE[0]=NULLIN;
01016 M01S00005.fsesc31 +++| HARDFN = TRUE;
01017 M01S00006.fsesc31 +++| INSX;
01018 M01S00007.fsesc31 +++| END
01019 M01S00008.fsesc31 +++| ELSE
01020 M01S00009.fsesc31 +++| BEGIN
01021 M01S00010.fsesc31 +++| REJECT;
01022 M01S00011.fsesc31 +++| IF HARDFN AND NOT TABVTPROTM[0] THEN PAINTREST(YCURSOR);
01023 M01S00945.fsescrn +++| END
01024 M01S00946.fsescrn +++| GOTO DSX0Y1;
01025 M01S00947.fsescrn +++|
01026 M01S00019.ns2641 +++|DSLEFT:
01027 M01S00020.ns2641 +++| IF TABVTPROTM[0] THEN
01028 M01S00021.ns2641 +++| BEGIN
01029 M01S00022.ns2641 +++| IF ROWTYPE[VTYCUR] EQ ROWST"TITLE"
01030 M01S00023.ns2641 +++| OR (ROWTYPE[VTYCUR] EQ ROWST"LABEL" AND VTXCUR LS FKEYLEN) THEN
01031 M01S00024.ns2641 +++| BEGIN # IF CURSOR IN PROTECTED AREA #
01032 M01S00025.ns2641 +++| VDTCOR(VTYCUR-1,VTXMAX); # CURSOR IS UP ONE LINE #
01033 M01S00026.ns2641 +++| END
01034 M01S00027.ns2641 +++| END
01035 M01S00028.ns2641 +++| GOTO DSLOOP;
01036 M01S00029.ns2641 +++|
01037 M01S00030.ns2641 +++|DSRIGHT:
01038 M01S00031.ns2641 +++| IF TABVTPROTM[0] THEN
01039 M01S00032.ns2641 +++| BEGIN
01040 M01S00033.ns2641 +++| IF ROWTYPE[VTYCUR] EQ ROWST"TITLE" THEN
01041 M01S00034.ns2641 +++| BEGIN # IF ON TITLE LINE #
01042 M01S00035.ns2641 +++| VDTCOR(VTYCUR+1,0); # CURSOR ONE LINE DOWN #
01043 M01S00036.ns2641 +++| END
01044 M01S00037.ns2641 +++| ELSE IF ROWTYPE[VTYCUR] EQ ROWST"LABEL" AND VTXCUR LS FKEYLEN THEN
01045 M01S00038.ns2641 +++| BEGIN # IF ON FUNCTION KEY LABEL LINE #
01046 M01S00039.ns2641 +++| VDTCOR(VTYCUR,FKEYLEN); # CURSOR IS PAST LABELS #
01047 M01S00040.ns2641 +++| END
01048 M01S00041.ns2641 +++| END
01049 M01S00042.ns2641 +++| GOTO DSLOOP;
01050 M01S00043.ns2641 +++|
01051 M01S00044.ns2641 +++|DSCLRALL:
01052 M01S00045.ns2641 +++| VDTSTS(0); # RESTORE COLUMN 1 TAB STOP #
01053 M01S00046.ns2641 +++| FOR SCRNPT2=1 STEP 1 UNTIL TABWORDS DO
01054 M01S00047.ns2641 +++| BEGIN # MARK ALL OTHER TABS CLEAR #
01055 M01S00048.ns2641 +++| TABVCTWRD[SCRNPT2] = 0;
01056 M01S00049.ns2641 +++| END
01057 M01S00050.ns2641 +++| GOTO DSLOOP;
01058 M01S00051.ns2641 +++|
01059 M01S00052.ns2641 +++|DSCLRTAB:
01060 M01S00053.ns2641 +++|DSSETTAB:
01061 M01S00054.ns2641 +++| FOR SCRNPT3=1 STEP 1 UNTIL USERTABS DO
01062 M01S00055.ns2641 +++| BEGIN
01063 M01S00056.ns2641 +++| SCRNPT2 = TABFN(SCRNPT3);
01064 M01S00057.ns2641 +++| IF SCRNPT2 GQ VTXCUR OR SCRNPT2 EQ 0 THEN
01065 M01S00058.ns2641 +++| BEGIN # IF FOUND THE SPOT #
01066 M01S00059.ns2641 +++| IF VTORDN EQ SCREENST"SETTAB" THEN
01067 M01S00060.ns2641 +++| BEGIN # IF SETTING TAB STOP #
01068 M01S00061.ns2641 +++| IF SCRNPT2 NQ VTXCUR AND VTXCUR GR 0 THEN
01069 M01S00062.ns2641 +++| BEGIN # IF TAB STOP NOT ALREADY SET #
01070 M01S00063.ns2641 +++| SCRNPT4 = VTXCUR;
01071 M01S00064.ns2641 +++| FOR SCRNPT3 = SCRNPT3-1 STEP 1
01072 M01S00065.ns2641 +++| WHILE SCRNPT3 LS USERTABS AND SCRNPT4 GR 0 DO
01073 M01S00066.ns2641 +++| BEGIN
01074 M01S00067.ns2641 +++| SCRNPT2 = SCRNPT4;
01075 M01S00068.ns2641 +++| SCRNPT4 = TABFN(SCRNPT3+1);
01076 M01S00069.ns2641 +++| SCRNPT5 = SCRNPT3/7;
01077 M01S00070.ns2641 +++| SCRNPT6 = MOD(SCRNPT3,7);
01078 M01S00071.ns2641 +++| B<SCRNPT6*8,8>TABVCTWRD[SCRNPT5+1] = SCRNPT2;
01079 M01S00072.ns2641 +++| END
01080 M01S00073.ns2641 +++| END
01081 M01S00074.ns2641 +++| END
01082 M01S00075.ns2641 +++| ELSE
01083 M01S00076.ns2641 +++| BEGIN # IF CLEARING TAB STOP #
01084 M01S00077.ns2641 +++| IF VTXCUR GR 0 THEN
01085 M01S00078.ns2641 +++| BEGIN # IF NOT IN COLUMN 1 #
01086 M01S00079.ns2641 +++| IF SCRNPT2 EQ VTXCUR THEN
01087 M01S00080.ns2641 +++| BEGIN # IF TAB STOP ACTUALLY SET #
01088 M01S00081.ns2641 +++| FOR SCRNPT3 = SCRNPT3 STEP 1
01089 M01S00082.ns2641 +++| WHILE SCRNPT3 LS USERTABS AND SCRNPT2 GR 0 DO
01090 M01S00083.ns2641 +++| BEGIN # REMOVE THE TAB STOP #
01091 M01S00084.ns2641 +++| SCRNPT2 = TABFN(SCRNPT3+1);
01092 M01S00085.ns2641 +++| SCRNPT5 = (SCRNPT3-1)/7;
01093 M01S00086.ns2641 +++| SCRNPT6 = MOD(SCRNPT3-1,7);
01094 M01S00087.ns2641 +++| B<SCRNPT6*8,8>TABVCTWRD[SCRNPT5+1] = SCRNPT2;
01095 M01S00088.ns2641 +++| END
01096 M01S00089.ns2641 +++| END
01097 M01S00090.ns2641 +++| END
01098 M01S00091.ns2641 +++| ELSE
01099 M01S00092.ns2641 +++| BEGIN # IF COLUMN 1 TAB STOP CLEARED #
01100 M01S00093.ns2641 +++| VDTSTS(0); # RESTORE COLUMN 1 TAB STOP #
01101 M01S00094.ns2641 +++| END
01102 M01S00095.ns2641 +++| END
01103 M01S00096.ns2641 +++| GOTO DSLOOP;
01104 M01S00097.ns2641 +++| END
01105 M01S00098.ns2641 +++| END
01106 M01S00099.ns2641 +++| GOTO DSLOOP;
01107 M01S00100.ns2641 +++|
01108 M01S00948.fsescrn +++|DSFTAB:
Line S00949 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01109 M02S00949.fsesc19 ---| SCRNPT2=TABFN(1);
01110 M01S00001.fsesc19 +++| SCRNPT4 = TABFN(1);
01111 M01S00950.fsescrn +++| FOR SCRNPT3=1 STEP 1 UNTIL USERTABS DO
01112 M01S00951.fsescrn +++| BEGIN
Line S00952 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01113 M02S00952.fsesc19 ---| IF TABFN(SCRNPT3) LS SCRNPT2 THEN
01114 M01S00002.fsesc19 +++| SCRNPT2 = TABFN(SCRNPT3);
01115 M01S00003.fsesc19 +++| IF SCRNPT2 LS SCRNPT4 OR SCRNPT2 GR VTXMAX THEN
01116 M01S00953.fsescrn +++| BEGIN # WRAPAROUND #
01117 M01S00954.fsescrn +++| GOTO DSFTAB2;
01118 M01S00955.fsescrn +++| END
Line S00956 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01119 M02S00956.fsesc19 ---| SCRNPT2=TABFN(SCRNPT3);
01120 M01S00957.fsescrn +++| IF SCRNPT2 GR VTXCUR THEN
01121 M01S00958.fsescrn +++| BEGIN # THIS IS IT #
Line S00959 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
01122 M02S00959.ns2641 ---| VDTCOR(VTYCUR,SCRNPT2);
Line S00960 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
01123 M02S00960.ns2641 ---| GOTO DSLOOP;
01124 M01S00101.ns2641 +++| SCRNPT4 = VTYCUR;
01125 M01S00102.ns2641 +++| GOTO DSFTAB3;
01126 M01S00961.fsescrn +++| END
01127 M01S00962.fsescrn +++| END
01128 M01S00963.fsescrn +++|DSFTAB2:
Line S00964 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
01129 M02S00964.ns2641 ---| IF NOT TABUNDWFLN[0] THEN
Line S00965 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
01130 M02S00965.ns2641 ---| BEGIN # IF FORWARD TABS WRAP LINES #
Line S00966 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
01131 M02S00966.ns2641 ---| SCRNPT4 = VTYCUR + 1;
Line S00967 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
01132 M02S00967.ns2641 ---| IF SCRNPT4 GR VTYMAX THEN SCRNPT4 = 0;
Line S00968 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
01133 M02S00968.ns2641 ---| VDTCOR(SCRNPT4,0);
Line S00969 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
01134 M02S00969.ns2641 ---| END
01135 M01S00103.ns2641 +++| IF TABUNDWFLN[0] THEN GOTO DSLOOP; # IF FORWARD TABS DO NOT WRAP #
01136 M01S00104.ns2641 +++| IF ROWTYPE[VTYCUR] EQ ROWST"LABEL"
01137 M01S00105.ns2641 +++| AND TABVTPROTM[0]
01138 M01S00106.ns2641 +++| AND VTXCUR LS FKEYLEN THEN
01139 M01S00107.ns2641 +++| BEGIN # IF WITHIN PROTECTED LABEL LINE #
01140 M01S00108.ns2641 +++| VDTCOR(VTYCUR,FKEYLEN);
01141 M01S00109.ns2641 +++| GOTO DSLOOP;
01142 M01S00110.ns2641 +++| END
01143 M01S00111.ns2641 +++| SCRNPT2 = 0;
01144 M01S00112.ns2641 +++| SCRNPT4 = VTYCUR + 1;
01145 M01S00113.ns2641 +++| IF SCRNPT4 GR VTYMAX THEN SCRNPT4 = 0;
01146 M01S00114.ns2641 +++|DSFTAB3:
01147 M01S00115.ns2641 +++| IF TABVTPROTM[0] THEN
01148 M01S00116.ns2641 +++| BEGIN # IF EDITOR USES PROTECT #
01149 M01S00117.ns2641 +++| IF ROWTYPE[SCRNPT4] EQ ROWST"TITLE" THEN
01150 M01S00118.ns2641 +++| BEGIN # IF PROTECTED TITLE LINE #
01151 M01S00119.ns2641 +++| SCRNPT4 = SCRNPT4 + 1; # ADVANCE PAST TITLE LINE #
01152 M01S00120.ns2641 +++| SCRNPT2 = 0;
01153 M01S00121.ns2641 +++| END
01154 M01S00122.ns2641 +++| ELSE IF ROWTYPE[SCRNPT4] EQ ROWST"LABEL"
01155 M01S00123.ns2641 +++| AND SCRNPT2 LS FKEYLEN THEN
01156 M01S00124.ns2641 +++| BEGIN # IF IN PROTECTED LABEL AREA #
01157 M01S00125.ns2641 +++| SCRNPT2 = FKEYLEN;
01158 M01S00126.ns2641 +++| END
01159 M01S00127.ns2641 +++| END
01160 M01S00128.ns2641 +++| VDTCOR(SCRNPT4,SCRNPT2);
01161 M01S00970.fsescrn +++| GOTO DSLOOP;
01162 M01S00971.fsescrn +++|
01163 M01S00972.fsescrn +++|DSBTAB:
01164 M01S00973.fsescrn +++| IF TABUNDWBLN[0] AND VTXCUR EQ 0 THEN GOTO DSLOOP; # IF NO WRAP #
01165 M01S00974.fsescrn +++| SCRNPT1=-1;
01166 M01S00975.fsescrn +++| SCRNPT2=TABFN(TABSTOPS);
01167 M01S00976.fsescrn +++| FOR SCRNPT3=USERTABS STEP -1 UNTIL 1 DO
01168 M01S00977.fsescrn +++| BEGIN
Line S00978 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01169 M02S00978.fsesc19 ---| IF TABFN(SCRNPT3) GR SCRNPT2 AND SCRNPT1 LS 0 THEN
Line S00979 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01170 M02S00979.fsesc19 ---| BEGIN # ENABLE #
Line S00980 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01171 M02S00980.fsesc19 ---| SCRNPT1=TABFN(SCRNPT3);
Line S00981 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01172 M02S00981.fsesc19 ---| END
Line S00982 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01173 M02S00982.fsesc19 ---| SCRNPT2=TABFN(SCRNPT3);
Line S00983 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01174 M02S00983.fsesc19 ---| IF SCRNPT2 LS VTXCUR AND SCRNPT1 GQ 0 THEN
Line S00984 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01175 M02S00984.fsesc19 ---| BEGIN # THIS IS IT #
Line S00985 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01176 M02S00985.fsesc19 ---| VDTCOR(VTYCUR,SCRNPT2);
Line S00986 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | fsesc19 |
Seq # *Modification Id* Act
----------------------------+
01177 M02S00986.fsesc19 ---| GOTO DSLOOP;
01178 M01S00004.fsesc19 +++| SCRNPT4 = TABFN(SCRNPT3);
01179 M01S00005.fsesc19 +++| IF SCRNPT1 LS 0 THEN
01180 M01S00006.fsesc19 +++| BEGIN # IF LAST VALID TAB NOT FOUND #
01181 M01S00007.fsesc19 +++| IF SCRNPT4 LQ SCRNPT2 OR SCRNPT4 GR VTXMAX THEN TEST SCRNPT3;
01182 M01S00008.fsesc19 +++| SCRNPT1 = SCRNPT4;
01183 M01S00009.fsesc19 +++| END
01184 M01S00010.fsesc19 +++| IF SCRNPT4 LS VTXCUR THEN
01185 M01S00011.fsesc19 +++| BEGIN # IF LEFT OF CURRENT POSITION #
01186 M01S00129.ns2641 +++| IF TABVTPROTM[0] THEN
01187 M01S00130.ns2641 +++| BEGIN # IF EDITOR USES PROTECT #
01188 M01S00131.ns2641 +++| IF ROWTYPE[VTYCUR] EQ ROWST"TITLE" THEN GOTO DSBTAB2;
01189 M01S00132.ns2641 +++| IF ROWTYPE[VTYCUR] EQ ROWST"LABEL" THEN
01190 M01S00133.ns2641 +++| BEGIN # IF PROTECTED LABEL LINE #
01191 M01S00134.ns2641 +++| IF VTXCUR LQ FKEYLEN THEN GOTO DSBTAB2;
01192 M01S00135.ns2641 +++| SCRNPT4 = MAX(SCRNPT4,FKEYLEN);
01193 M01S00136.ns2641 +++| END
01194 M01S00137.ns2641 +++| END
01195 M01S00012.fsesc19 +++| VDTCOR(VTYCUR,SCRNPT4);
01196 M01S00013.fsesc19 +++| GOTO DSLOOP;
01197 M01S00987.fsescrn +++| END
01198 M01S00988.fsescrn +++| END
Line S00989 Modification History |
M01 (Added by) | fsescrn |
M02 (Updated by) | ns2641 |
Seq # *Modification Id* Act
----------------------------+
01199 M02S00989.ns2641 ---| IF VTXCUR GR 0 THEN
01200 M01S00138.ns2641 +++| IF VTXCUR GR 0
01201 M01S00139.ns2641 +++| AND NOT (TABVTPROTM[0] AND ROWTYPE[VTYCUR] EQ ROWST"LABEL") THEN
01202 M01S00990.fsescrn +++| BEGIN
01203 M01S00991.fsescrn +++| VDTCOR(VTYCUR,0);
01204 M01S00992.fsescrn +++| GOTO DSLOOP;
01205 M01S00993.fsescrn +++| END
01206 M01S00140.ns2641 +++|DSBTAB2:
01207 M01S00994.fsescrn +++| SCRNPT1=MAX(SCRNPT1,0);
01208 M01S00995.fsescrn +++| SCRNPT4=VTYCUR-1;
01209 M01S00996.fsescrn +++| IF SCRNPT4 LS 0 THEN SCRNPT4=VTYMAX;
01210 M01S00141.ns2641 +++| IF TABVTPROTM[0] THEN
01211 M01S00142.ns2641 +++| BEGIN # IF EDITOR USES PROTECT #
01212 M01S00143.ns2641 +++| IF ROWTYPE[SCRNPT4] EQ ROWST"TITLE" THEN
01213 M01S00144.ns2641 +++| BEGIN # IF PROTECTED TITLE LINE #
01214 M01S00145.ns2641 +++| SCRNPT4 = SCRNPT4 - 1; # BACK UP PAST TITLE LINE #
01215 M01S00146.ns2641 +++| END
01216 M01S00147.ns2641 +++| ELSE IF ROWTYPE[SCRNPT4] EQ ROWST"LABEL" THEN
01217 M01S00148.ns2641 +++| BEGIN # IF PROTECTED LABEL LINE #
01218 M01S00149.ns2641 +++| SCRNPT1 = MAX(SCRNPT1,FKEYLEN);
01219 M01S00150.ns2641 +++| END
01220 M01S00151.ns2641 +++| END
01221 M01S00997.fsescrn +++| VDTCOR(SCRNPT4,SCRNPT1);
01222 M01S00998.fsescrn +++| GOTO DSLOOP;
01223 M01S00999.fsescrn +++|
01224 M01S01000.fsescrn +++|DSDELL:
01225 M01S01001.fsescrn +++| IF ALIGNGOOD THEN
01226 M01S01002.fsescrn +++| BEGIN
01227 M01S01003.fsescrn +++| IF CURRENT LS BOTS(CURSPLIT) THEN DELX;
01228 M01S01004.fsescrn +++| END
01229 M01S01005.fsescrn +++| ELSE
01230 M01S01006.fsescrn +++| BEGIN
01231 M01S01007.fsescrn +++| REJECT;
01232 M01S01008.fsescrn +++| IF HARDFN AND NOT TABVTPROTM[0] THEN PAINTREST(YCURSOR);
01233 M01S00001.fsesc20 +++| IF ROWTYPE[YCURSOR] EQ ROWST"COMMAND" THEN
01234 M01S00002.fsesc20 +++| BEGIN # IF DELETE ON COMMAND LINE #
01235 M01S00003.fsesc20 +++| SETCHAR(CMDLINE,0,CENDLINE);
01236 M01S00004.fsesc20 +++| END
01237 M01S01009.fsescrn +++| END
01238 M01S01010.fsescrn +++| LINECHANGED=FALSE;
01239 M01S01011.fsescrn +++| GOTO DSX0Y1;
01240 M01S01012.fsescrn +++|
01241 M01S01013.fsescrn +++|DSGENERIC:
01242 M01S01014.fsescrn +++| IF FIRSTEVENT THEN CMDLINE[0]=NULLIN;
01243 M01S01015.fsescrn +++| IF ABS(VTCHAR) EQ GENERICST"GHELP" THEN SETCMD("HELP");
01244 M01S01016.fsescrn +++| ELSE IF ABS(VTCHAR) EQ GENERICST"GBACK" THEN SETCMD("BACK");
01245 M01S01017.fsescrn +++| ELSE IF ABS(VTCHAR) EQ GENERICST"GDATA" THEN SETCMD("DATA");
01246 M01S01018.fsescrn +++| ELSE IF ABS(VTCHAR) EQ GENERICST"GEDIT" THEN SETCMD("EDIT");
01247 M01S01019.fsescrn +++| ELSE IF ABS(VTCHAR) EQ GENERICST"GSTOP" THEN
01248 M01S01020.fsescrn +++| BEGIN
01249 M01S01021.fsescrn +++| SETCMD("SETSCR");
01250 M01S01022.fsescrn +++| IF NOT PROMPTING THEN SETCMD("SETLIN");
01251 M01S01023.fsescrn +++| END
01252 M01S01024.fsescrn +++| ELSE IF VTCHAR EQ GENERICST"GFWD" THEN SETCMD("VNS");
01253 M01S01025.fsescrn +++| ELSE IF VTCHAR EQ GENERICST"GBKW" THEN SETCMD("VPS");
01254 M01S01026.fsescrn +++| ELSE IF -VTCHAR EQ GENERICST"GFWD" THEN SETCMD("VL");
01255 M01S01027.fsescrn +++| ELSE IF -VTCHAR EQ GENERICST"GBKW" THEN SETCMD("PF");
01256 M01S01028.fsescrn +++| ELSE IF VTCHAR EQ GENERICST"GUP" THEN SETCMD("VN");
01257 M01S01029.fsescrn +++| ELSE IF VTCHAR EQ GENERICST"GDOWN" THEN SETCMD("VP");
01258 M01S01030.fsescrn +++| ELSE IF TABCURADDT[0] EQ 2 AND
01259 M01S01031.fsescrn +++| TABVTFKLSM[0] NQ 0 AND
01260 M01S01032.fsescrn +++| VTCHAR EQ GENERICST"GPOS" THEN
01261 M01S01033.fsescrn +++| ROWPAINT[YCURSOR] = TRUE; # 721 FULL DUPLEX TOUCH PANEL #
01262 M01S01034.fsescrn +++| ELSE GOTO DSLOOP;
01263 M01S01035.fsescrn +++| GOTO DSFKEY2;
01264 M01S01036.fsescrn +++|
01265 M01S01037.fsescrn +++|DSFKEY:
01266 M01S01038.fsescrn +++| IF FIRSTEVENT THEN CMDLINE[0]=NULLIN;
01267 M01S01039.fsescrn +++| IF ABS(VTCHAR) GR POSFKEYS OR VTCHAR EQ 0
01268 M01S01040.fsescrn +++| THEN DSERRJMP("UNSUPPORTED FUNCTION KEY$");
01269 M01S01041.fsescrn +++| P<KEYLIN>=LOC(FKEYSTRING[VTCHAR]);
01270 M01S01042.fsescrn +++| SCRNPT2=LENGTH(KEYLIN);
01271 M01S01043.fsescrn +++| IF SCRNPT2 GQ 15 THEN
01272 M01S01044.fsescrn +++| BEGIN
01273 M01S01045.fsescrn +++| PUSH;
01274 M01S01046.fsescrn +++| POSZ(TOPK(FKEYS)+VTCHAR+POSFKEYS);
01275 M01S01047.fsescrn +++| P<KEYLIN>=LOC(LIN);
01276 M01S01048.fsescrn +++| ADDTOCMD;
01277 M01S01049.fsescrn +++| POP;
01278 M01S01050.fsescrn +++| END
01279 M01S01051.fsescrn +++| ELSE ADDTOCMD;
01280 M01S01052.fsescrn +++|DSFKEY2:
01281 M01S01053.fsescrn +++| HARDFN=FALSE;
01282 M01S01054.fsescrn +++| IF TABVTFKLSM[0] NQ 0 THEN ROWPAINT[YCURSOR] = TRUE;
01283 M01S01055.fsescrn +++| IF PROMPTING THEN # SIGNAL OVERRIDE OF SECONDARY #
01284 M01S01056.fsescrn +++| BEGIN
01285 M01S01057.fsescrn +++| HALT("DIRECTIVE CANCELLED BY FUNCTION KEY$");
01286 M01S01058.fsescrn +++| ESCAPE=TRUE;
01287 M01S01059.fsescrn +++| END
01288 M01S01060.fsescrn +++| GOTO DSLOOP;
01289 M01S01061.fsescrn +++|
01290 M01S01062.fsescrn +++|DSERAC:
01291 M01S01063.fsescrn +++| VTCHAR=X"20"; # BLANK #
01292 M01S01064.fsescrn +++| VTORDN=SCREENST"CHAR";
01293 M01S01065.fsescrn +++| GOTO DSCHAR;
01294 M01S01066.fsescrn +++|
01295 M01S01067.fsescrn +++|DSERAL:
01296 M01S01068.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"COMMAND" THEN
01297 M01S01069.fsescrn +++| BEGIN
01298 M01S01070.fsescrn +++| SETCHAR(CMDLINE,0,CENDLINE);
01299 M01S01071.fsescrn +++| ROWPAINT[COMMANDROW] = FALSE;
01300 M01S01072.fsescrn +++| END
01301 M01S01073.fsescrn +++| ELSE IF ALIGNGOOD THEN
01302 M01S01074.fsescrn +++| BEGIN
01303 M01S01075.fsescrn +++| FOR SCRNPT1=XSHIFT[CURSPLIT] STEP 1
01304 M01S01076.fsescrn +++| UNTIL EDITFIELD-1 DO SETCHAR(LINE,SCRNPT1,CBLANK);
01305 M01S01077.fsescrn +++| SETCHAR(LINE,BUFCHAR,CENDLINE);
01306 M01S01078.fsescrn +++| TRIMPAD;
01307 M01S01079.fsescrn +++| LINECHANGED=TRUE;
01308 M01S01080.fsescrn +++| END
01309 M01S01081.fsescrn +++| ELSE REJECT;
01310 M01S01082.fsescrn +++| GOTO DSX0Y1;
01311 M01S01083.fsescrn +++|
01312 M01S01084.fsescrn +++|DSFIELD:
01313 M01S01085.fsescrn +++| IF YCURSOR EQ COMMANDROW THEN
01314 M01S01086.fsescrn +++| BEGIN
01315 M01S01087.fsescrn +++| VDTIINP; # GET FIRST CHARACTER OF FIELD #
01316 M01S01088.fsescrn +++| FOR SCRNPT1 = 0 STEP 1 WHILE VTORDN EQ SCREENST"CHAR" DO
01317 M01S01089.fsescrn +++| BEGIN
01318 M01S01090.fsescrn +++| MOVETEXT(CMDLIN,SCRNPT1,BUFCM1);
01319 M01S01091.fsescrn +++| VDTIINP; # GET NEXT CHARACTER OF FIELD #
01320 M01S01092.fsescrn +++| END
01321 M01S01093.fsescrn +++| SETCHAR(CMDLINE,SCRNPT1,CENDLINE);
01322 M01S01094.fsescrn +++| ROWPAINT[COMMANDROW] = TRUE;
01323 M01S01095.fsescrn +++| END
01324 M01S01096.fsescrn +++| ELSE
01325 M01S01097.fsescrn +++| BEGIN
01326 M01S01098.fsescrn +++| EXTEND;
01327 M01S01099.fsescrn +++| IF ALIGNGOOD THEN
01328 M01S01100.fsescrn +++| BEGIN # IF ALIGN IS O.K. #
01329 M01S01101.fsescrn +++| SCRNPT2 = LENGTH(LIN); # SAVE CURRENT LINE LENGTH #
01330 M01S01102.fsescrn +++| VDTIINP; # GET FIRST CHARACTER OF FIELD #
01331 M01S01103.fsescrn +++| FOR XCURSOR = 0 STEP 1 WHILE VTORDN EQ SCREENST"CHAR" DO
01332 M01S01104.fsescrn +++| BEGIN
01333 M01S01105.fsescrn +++| IF XCURSOR + XSHIFT[CURSPLIT] LS EDITFIELD THEN
01334 M01S01106.fsescrn +++| BEGIN # IF WITHIN EDITING WINDOW #
01335 M01S01107.fsescrn +++| SCRNPT1 = XLTXPINT[VTCHAR];
01336 M01S01108.fsescrn +++| IF ASCII[CURFILE] LQ 1 THEN
01337 M01S01109.fsescrn +++| BEGIN # IF SUPPRESSING LOWER CASE #
01338 M01S01110.fsescrn +++| # CODE IS DEPENDENT ON PRECISE VALUES OF INTERNAL CHARSET #
01339 M01S01111.fsescrn +++| CONTROL IFNQ CLEFTCURL,O"133"; DEFERROR; CONTROL FI;
01340 M01S01112.fsescrn +++| CONTROL IFNQ CVERTICAL,O"134"; DEFERROR; CONTROL FI;
01341 M01S01113.fsescrn +++| CONTROL IFNQ CRITECURL,O"135"; DEFERROR; CONTROL FI;
01342 M01S01114.fsescrn +++| CONTROL IFNQ CTILDE,O"136"; DEFERROR; CONTROL FI;
01343 M01S01115.fsescrn +++| CONTROL IFNQ CGRAVE,O"100"; DEFERROR; CONTROL FI;
01344 M01S01116.fsescrn +++| CONTROL IFNQ CCOLON,O"000"; DEFERROR; CONTROL FI;
01345 M01S01117.fsescrn +++| # REPAINT IF NON-EXISTENT DISPLAY CODE CHARACTER #
01346 M01S01118.fsescrn +++| IF (SCRNPT1 GQ O"133" AND SCRNPT1 LQ O"136")
01347 M01S01119.fsescrn +++| OR (SCRNPT1 EQ O"100") THEN ROWPAINT[YCURSOR] = TRUE;
01348 M01S01120.fsescrn +++| IF (B<00,01>MEM[CSMR] EQ 0)
01349 M01S01121.fsescrn +++| AND (SCRNPT1 EQ O"000") THEN ROWPAINT[YCURSOR]=TRUE;
01350 M01S01122.fsescrn +++| DSPLCOD(SCRNPT1); # SUPRESS LOWER CASE #
01351 M01S01123.fsescrn +++| END
01352 M01S01124.fsescrn +++| SETCHAR(LINE,XCURSOR+XSHIFT[CURSPLIT],SCRNPT1);
01353 M01S01125.fsescrn +++| IF SCRNPT1 EQ TABCHAR THEN
01354 M01S01126.fsescrn +++| BEGIN # IF SOFT TAB #
01355 M01S01127.fsescrn +++| SOFTTAB = TRUE;
01356 M01S01128.fsescrn +++| ROWPAINT[YCURSOR] = TRUE;
01357 M01S01129.fsescrn +++| END
01358 M01S01130.fsescrn +++| END
01359 M01S01131.fsescrn +++| VDTIINP; # GET NEXT CHARACTER OF FIELD #
01360 M01S01132.fsescrn +++| END
01361 M01S01133.fsescrn +++|#
01362 M01S01134.fsescrn +++| PERFORM NECESSARY PADDING AND SET END OF LINE.
01363 M01S01135.fsescrn +++|#
01364 M01S01136.fsescrn +++| SCRNPT1 = XSHIFT[CURSPLIT] + XCURSOR;
01365 M01S01137.fsescrn +++| IF SCRNPT1 LS SCRNPT2 THEN
01366 M01S01138.fsescrn +++| BEGIN # IF LINE WAS SHORTENED #
01367 M01S01139.fsescrn +++| FOR SCRNPT3 = SCRNPT1 STEP 1 UNTIL
01368 M01S01140.fsescrn +++| MIN(SCRNPT2-1,MIN(EDITFIELD-1,XSHIFT[CURSPLIT]+USRNUMCOL)) DO
01369 M01S01141.fsescrn +++| BEGIN
01370 M01S01142.fsescrn +++| SETCHAR(LINE,SCRNPT3,CBLANK);
01371 M01S01143.fsescrn +++| END
01372 M01S01144.fsescrn +++| TRIMPAD;
01373 M01S01145.fsescrn +++| END
01374 M01S01146.fsescrn +++| ELSE
01375 M01S01147.fsescrn +++| BEGIN # LINE NOT SHORTENED #
01376 M01S01148.fsescrn +++| IF SCRNPT2 LS XSHIFT[CURSPLIT] THEN
01377 M01S01149.fsescrn +++| BEGIN # IF LINE LENGTHENED #
01378 M01S01150.fsescrn +++| IF EDITFIELD GQ XSHIFT[CURSPLIT] THEN
01379 M01S01151.fsescrn +++| BEGIN # IF WITHIN EDITING WINDOW #
01380 M01S01152.fsescrn +++| FOR SCRNPT3 = SCRNPT2 STEP 1 UNTIL XSHIFT[CURSPLIT] - 1 DO
01381 M01S01153.fsescrn +++| SETCHAR(LINE,SCRNPT3,CBLANK);
01382 M01S01154.fsescrn +++| SETCHAR(LINE,MIN(SCRNPT1,EDITFIELD),CENDLINE);
01383 M01S01155.fsescrn +++| END
01384 M01S01156.fsescrn +++| END
01385 M01S01157.fsescrn +++| ELSE
01386 M01S01158.fsescrn +++| BEGIN # NO CHANGE IN LINE LENGTH #
01387 M01S01159.fsescrn +++| SETCHAR(LINE,MIN(SCRNPT1,MAX(SCRNPT2,EDITFIELD)),CENDLINE);
01388 M01S01160.fsescrn +++| END
01389 M01S01161.fsescrn +++| END
01390 M01S01162.fsescrn +++| LINECHANGED = TRUE; # TEXT OF LINE ALTERED #
01391 M01S01163.fsescrn +++| END
01392 M01S01164.fsescrn +++| ELSE
01393 M01S01165.fsescrn +++| BEGIN # ALIGN BAD #
01394 M01S01166.fsescrn +++| REJECT; # REJECT CHANGE #
01395 M01S01167.fsescrn +++| END
01396 M01S01168.fsescrn +++| END
01397 M01S01169.fsescrn +++| GOTO DSLOOP3; # CONTINUE WITH INPUT #
01398 M01S01170.fsescrn +++|
01399 M01S01171.fsescrn +++|
01400 M01S01172.fsescrn +++|DSBAD:
01401 M01S01173.fsescrn +++| ERRSTRING = "UNKNOWN CONTROL KEY, CHECK SCREEN$";
01402 M01S01174.fsescrn +++| ROWPAINT[VTYCUR] = TRUE; # SIGNAL REPAINT OF LINE #
01403 M01S01175.fsescrn +++| GOTO DSLOOP;
01404 M01S01176.fsescrn +++|
01405 M01S01177.fsescrn +++| IOEND # DOSCREEN #
01406 M01S01178.fsescrn +++|PAGE # SCREEN OUTPUT/CONTROL #
01407 M01S01179.fsescrn +++|
01408 M01S01180.fsescrn +++|
01409 M01S01181.fsescrn +++|PROC PAINTMARKS(MARKTYPE);
01410 M01S01182.fsescrn +++| BEGIN
01411 M01S01183.fsescrn +++|#
01412 M01S01184.fsescrn +++|** PAINTMARKS - SET SCREEN PAINT BITS FOR MARKS.
01413 M01S01185.fsescrn +++|*
01414 M01S01186.fsescrn +++|* ENTRY MARKTYPE - 1=FORCE HIGHLIGHTING ON.
01415 M01S01187.fsescrn +++|* 2=MAINTAIN EXISTING HIGHLIGHTS.
01416 M01S01188.fsescrn +++|* 3=FORCE HIGHLIGHTING OFF.
01417 M01S01189.fsescrn +++|* TOPS(BOTH), BOTS(BOTH) - SETUP.
01418 M01S01190.fsescrn +++|* REGLINE[MARKREG AND MARKREG+1] - ALREADY SET.
01419 M01S01191.fsescrn +++|* SPLITFILE[2] - WHETHER TWO SPLITS ARE ON SCREEN.
01420 M01S01192.fsescrn +++|*
01421 M01S01193.fsescrn +++|* EXIT ROWPMARK[ALL] - FORCED ON OR OFF BY REGIONS.
01422 M01S01194.fsescrn +++|* ROWPAINT[ANY] - FORCED TRUE AS NEEDED.
01423 M01S01195.fsescrn +++|*
01424 M01S01196.fsescrn +++|* CALLS DOMARK (INTERNAL).
01425 M01S01197.fsescrn +++|#
01426 M01S01198.fsescrn +++| ITEM MARKTYPE;
01427 M01S01199.fsescrn +++|
01428 M01S01200.fsescrn +++| PROC DOMARK(SPLT);
01429 M01S01201.fsescrn +++| BEGIN
01430 M01S01202.fsescrn +++|#
01431 M01S01203.fsescrn +++|** DOMARK - WORKING PORTION OF PAINTMARKS.
01432 M01S01204.fsescrn +++|*
01433 M01S01205.fsescrn +++|* NOTE REFER TO PAINTMARKS HEADER.
01434 M01S01206.fsescrn +++|#
01435 M01S01207.fsescrn +++| ITEM L1, L2, SPLT;
01436 M01S01208.fsescrn +++| FOR L1=TOPS(SPLT)+1 STEP 1 UNTIL BOTS(SPLT)-1 DO
01437 M01S01209.fsescrn +++| BEGIN
01438 M01S01210.fsescrn +++| L2=LTOY(L1,SPLT);
01439 M01S01211.fsescrn +++| ROWPMARK[L2]=FALSE;
01440 M01S01212.fsescrn +++| IF L1 GQ REGLINE[MARKREG] AND L1 LQ REGLINE[MARKREG+1] THEN
01441 M01S01213.fsescrn +++| BEGIN
01442 M01S01214.fsescrn +++| IF MARKTYPE NQ 2 THEN ROWPAINT[L2]=TRUE;
01443 M01S01215.fsescrn +++| IF MARKTYPE NQ 3 THEN ROWPMARK[L2]=TRUE;
01444 M01S01216.fsescrn +++| END
01445 M01S01217.fsescrn +++| IF TABATTRCHR[0] THEN
01446 M01S01218.fsescrn +++| BEGIN # IF ATTRIBUTE TAKES A POS #
01447 M01S01219.fsescrn +++| IF L1 EQ REGLINE[MARKREG] AND MARKTYPE EQ 3 THEN
01448 M01S01220.fsescrn +++| BEGIN # IF CLEARING MARKS #
01449 M01S01221.fsescrn +++| ROWPAINT[L2-1] = TRUE; # FLAG FOR REPAINT #
01450 M01S01222.fsescrn +++| END
01451 M01S01223.fsescrn +++| END
01452 M01S01224.fsescrn +++| END
01453 M01S01225.fsescrn +++| END
01454 M01S01226.fsescrn +++|
01455 M01S01227.fsescrn +++| IF NUMMARKS GR 0 THEN # SEE IF NEED TO HIGHLIGHT ANY #
01456 M01S01228.fsescrn +++| BEGIN
01457 M01S01229.fsescrn +++| DOMARK(1);
01458 M01S01230.fsescrn +++| IF SPLITFILE[2] NQ 0 THEN DOMARK(2);
01459 M01S01231.fsescrn +++| END
01460 M01S01232.fsescrn +++|
01461 M01S01233.fsescrn +++| END # OF PAINTMARKS #
01462 M01S01234.fsescrn +++|
01463 M01S01235.fsescrn +++|
01464 M01S01236.fsescrn +++|PROC PAINTSCREEN;
01465 M01S01237.fsescrn +++| IOBEGIN(PAINTSCREEN)
01466 M01S01238.fsescrn +++|#
01467 M01S01239.fsescrn +++|** PAINTSCREEN - OUTPUT NORMAL AND SECONDARY DISPLAYS.
01468 M01S01240.fsescrn +++|*
01469 M01S01241.fsescrn +++|* PAINTSCREEN IS CALLED TO FILL A DISPLAY PAGE. THE
01470 M01S01242.fsescrn +++|* PROMPTING FLAG INDICATES WHETHER THIS IS A NORMAL
01471 M01S01243.fsescrn +++|* (PRIMARY) DISPLAY OR A SECONDARY DISPLAY. THE ROWPAINT
01472 M01S01244.fsescrn +++|* BITS INDICATE WHICH PORTIONS OF THE SCREEN ARE ALREADY
01473 M01S01245.fsescrn +++|* CORRECT AND WHICH REALLY NEED TO BE PAINTED. THE YCURSOR
01474 M01S01246.fsescrn +++|* IS FORCED TO POINT TO EITHER TEXT OR THE COMMAND AREA IF
01475 M01S01247.fsescrn +++|* IT DOES NOT ALREADY. ANY MESSAGE IN THE ERROR STRING
01476 M01S01248.fsescrn +++|* BUFFER IS OUTPUT AND CLEARED. IF AN ERROEOUS COMMAND WAS
01477 M01S01249.fsescrn +++|* PREVIOUSLY ATTEMPTED, PAINTSCREEN RECOGNIZES THIS AND
01478 M01S01250.fsescrn +++|* RE-PRINTS THE OLD COMMAND BUFFER WITH THE CURSOR FLASHING
01479 M01S01251.fsescrn +++|* AT THE ILLEGAL SYNTAX. FILE POSITIONING IS FORCED TO
01480 M01S01252.fsescrn +++|* ALIGN WITH THE CURSOR FOR ON-TEXT CURSORS. TITLE LINES
01481 M01S01253.fsescrn +++|* ARE VERIFIED FOR CORRECTNESS AND POSSIBLY PAINTED.
01482 M01S01254.fsescrn +++|*
01483 M01S01255.fsescrn +++|* ENTRY YCURSOR - COMMAND PROCESSOR'S FAVORITE CURSOR.
01484 M01S01256.fsescrn +++|* NEGATIVE=SELECT CURSOR FOR CURRENT LINE.
01485 M01S01257.fsescrn +++|* ON TEXT OR COMMAND ROW=USE THAT.
01486 M01S01258.fsescrn +++|* XCURSOR - ALSO WHERE COMMAND PROCESSOR WANT IT.
01487 M01S01259.fsescrn +++|* VTXMAX - MAXIMUM COLUMN POSITION.
01488 M01S01260.fsescrn +++|* ROWTYPE[ALL], ROWSPLIT[ALL] - SETUP.
01489 M01S01261.fsescrn +++|* SPLITFILE[1-2] - SETUP.
01490 M01S01262.fsescrn +++|* CURRENT, CURFILE, CURSPLIT - WHERE WE ARE.
01491 M01S01263.fsescrn +++|* PROMPTING - PRIMARY OR SECONDARY DISPLAY.
01492 M01S01264.fsescrn +++|* LTPS(1-2), LASTBOTS, LASTSIZE, LASTNAME - MUST
01493 M01S01265.fsescrn +++|* BE LEFT OVER FROM PREVIOUS PAINTSCREEN OR -1.
01494 M01S01266.fsescrn +++|* COMMANDROW - SETUP.
01495 M01S01267.fsescrn +++|* ROWORIG[ALL] - MUST BE AS LEFT BY LAST CALL HERE
01496 M01S01268.fsescrn +++|* EXCEPT AS UPDATED BY DELX AND INSX.
01497 M01S01269.fsescrn +++|* ROWPAINT[ALL] - WHICH LINES NEED PAINTING.
01498 M01S01270.fsescrn +++|* TOPS(1-2), BOTS(1-2) - SETUP.
01499 M01S01271.fsescrn +++|* ROWCOLUM[ALL] - WHERE WANT SCALE PATTERN PAINTED.
01500 M01S01272.fsescrn +++|* XSHIFT[1-2] - SETUP.
01501 M01S01273.fsescrn +++|* MRKCHAR[0-1] - SETUP.
01502 M01S01274.fsescrn +++|* USRNUMCOL, USRNUMLIN - LOGICAL DIMENSIONS.
01503 M01S01275.fsescrn +++|* ERRSTRING - ERROR MESSAGE BUFFER.
01504 M01S01276.fsescrn +++|* CMDLIN - RESIDUAL COMMAND BUFFER.
01505 M01S01277.fsescrn +++|* TOPF(1-2), BOTF(1-2) - SETUP.
01506 M01S01278.fsescrn +++|* FKEYSHOW - HOW MANY FUNCTION KEYS TO DISPLAY.
01507 M01S00001.ns2700 +++|* SHIFTFKEY - FLAG TO DISPLAY SHIFTED FUNCTION KEYS.
01508 M01S01279.fsescrn +++|* ERRCURSOR - IF POSITIVE, XCURSOR FOR SYNTAX ERROR.
01509 M01S01280.fsescrn +++|*
01510 M01S01281.fsescrn +++|* EXIT XCURSOR, YCURSOR - POSSIBLY AT NEW LOCATION.
01511 M01S01282.fsescrn +++|* TOPS(1-2), BOTS(1-2) - POSSIBLY UPDATED.
01512 M01S01283.fsescrn +++|* CURFILE - UPDATED IF YCURSOR UPDATED.
01513 M01S01284.fsescrn +++|* CURSPLIT - UPDATED IF YCURSOR UPDATED.
01514 M01S01285.fsescrn +++|* ERRSTRING - POSSIBLY WIDE LINE WARNING.
01515 M01S01286.fsescrn +++|* ROWPAINT[ALL] - FALSE EXCEPT POSSIBLY COMMANDROW.
01516 M01S01287.fsescrn +++|* ROWORIG[ALL] - REDEFINED.
01517 M01S01288.fsescrn +++|* ROWCOLUM[ALL] - FALSE.
01518 M01S01289.fsescrn +++|* ROWPMARK[ALL] - FALSE.
01519 M01S01290.fsescrn +++|* LTPS(1-2), LASTBOTS, LASTSIZE, LASTNAME - REDEFINED.
01520 M01S01291.fsescrn +++|*
01521 M01S01292.fsescrn +++|* MACROS GETCHAR, SETCHAR, LTOY.
01522 M01S01293.fsescrn +++|*
01523 M01S01294.fsescrn +++|* CALLS GENDECIMAL, GENLITERAL, GENNAME, GENTITLE, LENGTH,
01524 M01S01295.fsescrn +++|* PAINTMARKS, PAINTSPLIT, POSZ, SETTOPBOTS, TRIMPAD,
01525 M01S01296.fsescrn +++|* TTLCSTR, TTDEC, TTLFN, TTSTR, TTST, VDTCHR, VDTCLL
01526 M01S01297.fsescrn +++|* VDTPOS, VDTSAM.
01527 M01S01298.fsescrn +++|*
01528 M01S01299.fsescrn +++|* USES SPLIT, FILNUM, FKEYNDX, SCRNPT1, SCRNPT2,
01529 M01S01300.fsescrn +++|* SCRNPT3, SCRNPT4, SCRNPT5, SCRNPT6, LIN.
01530 M01S01301.fsescrn +++|#
01531 M01S01302.fsescrn +++|
01532 M01S01303.fsescrn +++| SWITCH PAINTSW
01533 M01S01304.fsescrn +++| PTEMPTY, # EMPTY LINE #
01534 M01S01305.fsescrn +++| PTCMD, # COMMAND LINE #
01535 M01S01306.fsescrn +++| PTTITLE, # TITLE LINE #
01536 M01S01307.fsescrn +++| PTLABEL, # FUNCTION KEY LABEL LINE #
01537 M01S01308.fsescrn +++| PTTEXT, # TEXT LINE #
01538 M01S01309.fsescrn +++| PTRESPONSE; # FSE COMMAND RESPONSE LINE #
01539 M01S01310.fsescrn +++|
01540 M01S01311.fsescrn +++|
01541 M01S01312.fsescrn +++| PROC GENDECIMAL(POS,VALUE);
01542 M01S01313.fsescrn +++|# TITLE GENDECIMAL - GENERATE A DECIMAL NUMBER. #
01543 M01S01314.fsescrn +++|
01544 M01S01315.fsescrn +++| BEGIN # GENDECIMAL #
01545 M01S01316.fsescrn +++|
01546 M01S01317.fsescrn +++|#
01547 M01S01318.fsescrn +++|** GENDECIMAL - GENERATE A DECIMAL NUMBER.
01548 M01S01319.fsescrn +++|*
01549 M01S01320.fsescrn +++|* CONVERT A DISPLAY CODE VALUE TO DECIMAL AND POSITION
01550 M01S01321.fsescrn +++|* IT IN THE TTYLINE.
01551 M01S01322.fsescrn +++|*
01552 M01S01323.fsescrn +++|* PROC GENDECIMAL(POS,VALUE)
01553 M01S01324.fsescrn +++|*
01554 M01S01325.fsescrn +++|* EXIT TTYLINE - SETUP.
01555 M01S01326.fsescrn +++|*
01556 M01S01327.fsescrn +++|* CALLS SETCHAR.
01557 M01S01328.fsescrn +++|*
01558 M01S01329.fsescrn +++|* USES TTYLINE.
01559 M01S01330.fsescrn +++|#
01560 M01S01331.fsescrn +++|
01561 M01S01332.fsescrn +++| ITEM POS I; # POSITION OF NUMBER #
01562 M01S01333.fsescrn +++| ITEM QUIT B; # FINISHED FLAG #
01563 M01S01334.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE #
01564 M01S01335.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE #
01565 M01S01336.fsescrn +++| ITEM TMP3 I; # TEMPORARY STORAGE #
01566 M01S01337.fsescrn +++| ITEM VALUE I; # VALUE TO CONVERT #
01567 M01S01338.fsescrn +++|
01568 M01S01339.fsescrn +++| TMP1=ABS(VALUE);
01569 M01S01340.fsescrn +++| TMP2=0; # COUNT DIGITS #
01570 M01S01341.fsescrn +++| QUIT=FALSE;
01571 M01S01342.fsescrn +++| WHYLE NOT QUIT DO # NOT DONE YET #
01572 M01S01343.fsescrn +++| BEGIN
01573 M01S01344.fsescrn +++| C<TMP2>TMP3=MOD(TMP1,10)+O"33"; # GET A DIGIT #
01574 M01S01345.fsescrn +++| TMP1=TMP1/10; # REDUCE NUMBER #
01575 M01S01346.fsescrn +++| TMP2=TMP2+1; # BUMP POINTER #
01576 M01S01347.fsescrn +++| IF TMP1 EQ 0 THEN QUIT=TRUE;
01577 M01S01348.fsescrn +++| END
01578 M01S01349.fsescrn +++|
01579 M01S01350.fsescrn +++| FOR TMP1=1 STEP 1 UNTIL TMP2 DO
01580 M01S01351.fsescrn +++| BEGIN
01581 M01S01352.fsescrn +++| SETCHAR(TTYLINE,POS,XLTDSPINT[C<TMP2-TMP1>TMP3]);
01582 M01S01353.fsescrn +++| POS=POS+1;
01583 M01S01354.fsescrn +++| END
01584 M01S01355.fsescrn +++|
01585 M01S01356.fsescrn +++| END # GENDECIMAL #
01586 M01S01357.fsescrn +++|
01587 M01S01358.fsescrn +++|
01588 M01S01359.fsescrn +++| PROC GENLITERAL(POS,STR);
01589 M01S01360.fsescrn +++|# TITLE GENLITERAL - GENERATE A LITERAL STRING. #
01590 M01S01361.fsescrn +++|
01591 M01S01362.fsescrn +++| BEGIN # GENLITERAL #
01592 M01S01363.fsescrn +++|
01593 M01S01364.fsescrn +++|#
01594 M01S01365.fsescrn +++|** GENLITERAL - GENERATE A LITERAL STRING.
01595 M01S01366.fsescrn +++|*
01596 M01S01367.fsescrn +++|* GENERATE A LITERAL STRING AND POSITION IT IN THE
01597 M01S01368.fsescrn +++|* TTYLINE.
01598 M01S01369.fsescrn +++|*
01599 M01S01370.fsescrn +++|* PROC GENLITERAL(POS,STR)
01600 M01S01371.fsescrn +++|*
01601 M01S01372.fsescrn +++|* EXIT TTYLINE - SETUP.
01602 M01S01373.fsescrn +++|*
01603 M01S01374.fsescrn +++|* CALLS SETCHAR.
01604 M01S01375.fsescrn +++|*
01605 M01S01376.fsescrn +++|* USES TTYLINE.
01606 M01S01377.fsescrn +++|#
01607 M01S01378.fsescrn +++|
01608 M01S01379.fsescrn +++| ITEM BEGINWORD B; # BEGINNING WORD #
01609 M01S01380.fsescrn +++| ITEM POS I; # POSITION OF STRING #
01610 M01S01381.fsescrn +++| ITEM STR C(40); # STRING TO CONVERT #
01611 M01S01382.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE #
01612 M01S01383.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE #
01613 M01S01384.fsescrn +++|
01614 M01S01385.fsescrn +++| BEGINWORD=TRUE;
01615 M01S01386.fsescrn +++| TMP1=0;
01616 M01S01387.fsescrn +++| WHYLE TMP1 LS 40 AND C<TMP1>STR NQ "$" DO
01617 M01S01388.fsescrn +++| BEGIN
01618 M01S01389.fsescrn +++| TMP2=C<TMP1>STR;
01619 M01S01390.fsescrn +++| TMP2=XLTDSPINT[TMP2];
01620 M01S01391.fsescrn +++| IF TMP2 GQ CLETTERA AND TMP2 LQ CLETTERZ THEN
01621 M01S01392.fsescrn +++| BEGIN
01622 M01S01393.fsescrn +++| IF NOT BEGINWORD THEN TMP2=TMP2+CLOWERA-CLETTERA;
01623 M01S01394.fsescrn +++| BEGINWORD=FALSE;
01624 M01S01395.fsescrn +++| END
01625 M01S01396.fsescrn +++| ELSE BEGINWORD=TRUE;
01626 M01S01397.fsescrn +++| SETCHAR(TTYLINE,POS,TMP2);
01627 M01S01398.fsescrn +++| POS=POS+1;
01628 M01S01399.fsescrn +++| TMP1=TMP1+1;
01629 M01S01400.fsescrn +++| END
01630 M01S01401.fsescrn +++|
01631 M01S01402.fsescrn +++| END # GENLITERAL #
01632 M01S01403.fsescrn +++|
01633 M01S01404.fsescrn +++|
01634 M01S01405.fsescrn +++| PROC GENNAME(POS,NAME);
01635 M01S01406.fsescrn +++|# TITLE GENNAME - GENERATE A NAME. #
01636 M01S01407.fsescrn +++|
01637 M01S01408.fsescrn +++| BEGIN # GENNAME #
01638 M01S01409.fsescrn +++|
01639 M01S01410.fsescrn +++|#
01640 M01S01411.fsescrn +++|** GENNAME - GENERATE A NAME.
01641 M01S01412.fsescrn +++|*
01642 M01S01413.fsescrn +++|* GENERATE A NAME AND POSITION IT IN THE TTYLINE.
01643 M01S01414.fsescrn +++|*
01644 M01S01415.fsescrn +++|* PROC GENNAME(POS,NAME)
01645 M01S01416.fsescrn +++|*
01646 M01S01417.fsescrn +++|* EXIT TTYLINE - SETUP.
01647 M01S01418.fsescrn +++|*
01648 M01S01419.fsescrn +++|* CALLS SETCHAR.
01649 M01S01420.fsescrn +++|*
01650 M01S01421.fsescrn +++|* USES TTYLINE.
01651 M01S01422.fsescrn +++|#
01652 M01S01423.fsescrn +++|
01653 M01S01424.fsescrn +++| ITEM NAME C(07); # NAME TO CONVERT #
01654 M01S01425.fsescrn +++| ITEM POS I; # POSITION OF NAME #
01655 M01S01426.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE #
01656 M01S01427.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE #
01657 M01S01428.fsescrn +++|
01658 M01S01429.fsescrn +++| FOR TMP1=0 STEP 1 UNTIL 6 DO
01659 M01S01430.fsescrn +++| BEGIN
01660 M01S01431.fsescrn +++| TMP2=C<TMP1>NAME;
01661 M01S01432.fsescrn +++| IF TMP2 NQ 0 AND TMP2 NQ O"55" THEN
01662 M01S01433.fsescrn +++| BEGIN
01663 M01S01434.fsescrn +++| TMP2=XLTDSPINT[TMP2];
01664 M01S01435.fsescrn +++| SETCHAR(TTYLINE,POS,TMP2);
01665 M01S01436.fsescrn +++| POS=POS+1;
01666 M01S01437.fsescrn +++| END
01667 M01S01438.fsescrn +++| END
01668 M01S01439.fsescrn +++|
01669 M01S01440.fsescrn +++| END # GENNAME #
01670 M01S01441.fsescrn +++|
01671 M01S01442.fsescrn +++|
01672 M01S01443.fsescrn +++| PROC GENTITLE(SPLIT);
01673 M01S01444.fsescrn +++|# TITLE GENTITLE - GENERATE TITLE LINE TEXT. #
01674 M01S01445.fsescrn +++|
01675 M01S01446.fsescrn +++| BEGIN # GENTITLE #
01676 M01S01447.fsescrn +++|
01677 M01S01448.fsescrn +++|#
01678 M01S01449.fsescrn +++|** GENTITLE - GENERATE TITLE LINE TEXT.
01679 M01S01450.fsescrn +++|*
01680 M01S01451.fsescrn +++|* GIVEN A SPLIT, GENERATE THE TITLE LINE.
01681 M01S01452.fsescrn +++|*
01682 M01S01453.fsescrn +++|* PROC GENTITLE(SPLIT)
01683 M01S01454.fsescrn +++|*
01684 M01S01455.fsescrn +++|* ENTRY SPLIT - WHICH SPLIT TO GENERATE TITLE FOR.
01685 M01S01456.fsescrn +++|*
01686 M01S01457.fsescrn +++|* EXIT TTYLIN - TEXT FOR TITLE LINE.
01687 M01S01458.fsescrn +++|*
01688 M01S01459.fsescrn +++|* CALLS GENDECIMAL, GENLITERAL, GENNAME, SETCHAR.
01689 M01S01460.fsescrn +++|*
01690 M01S01461.fsescrn +++| USES TTYLIN.
01691 M01S01462.fsescrn +++|#
01692 M01S01463.fsescrn +++|
01693 M01S01464.fsescrn +++| ITEM FILE I; # FILE SPLIT #
01694 M01S01465.fsescrn +++| ITEM POS I; # POSITION OF TEXT #
01695 M01S01466.fsescrn +++| ITEM SPLIT I; # TITLE SPLIT #
01696 M01S01467.fsescrn +++|
01697 M01S01468.fsescrn +++| POS=0;
01698 M01S01469.fsescrn +++| IF TABATTRCHR[0] THEN GENLITERAL(POS," $");
01699 M01S01470.fsescrn +++| FILE=SPLITFILE[SPLIT];
01700 M01S01471.fsescrn +++| IF ASCII[FILE] LQ 1 THEN GENLITERAL(POS,"UPPER CASE $");
01701 M01S01472.fsescrn +++| GENLITERAL(POS,"FILE $");
01702 M01S01473.fsescrn +++| GENNAME(POS,FILENAM[FILE]);
01703 M01S01474.fsescrn +++| GENLITERAL(POS," $");
01704 M01S01475.fsescrn +++| IF NOT SHORTTITLE THEN
01705 M01S01476.fsescrn +++| BEGIN
01706 M01S01477.fsescrn +++| IF TOPF(FILE)+1 EQ BOTF(FILE) THEN GENLITERAL(POS," EMPTY$");
01707 M01S01478.fsescrn +++| ELSE
01708 M01S01479.fsescrn +++| BEGIN
01709 M01S01480.fsescrn +++| IF TOPS(SPLIT)+1 NQ BOTS(SPLIT) THEN
01710 M01S01481.fsescrn +++| BEGIN
01711 M01S01482.fsescrn +++| GENLITERAL(POS,"LINES $");
01712 M01S01483.fsescrn +++| GENDECIMAL(POS,TOPS(SPLIT)+1-TOPF(FILNUM));