cdc:nos2.source:opl.opl871:deck:fsescrn
Deck FSESCRN
22 Modifications
Listing Sections
- Deck FSESCRN Start
- Deck FSESCRN Part 1 (Line 1713)
Source
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));
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/fsescrn.txt ยท Last modified: by 127.0.0.1