cdc:nos2.source:opl.opl871:deck:fsescrn
Deck FSESCRN
Library Member Format: MODIFY
Listing Sections
- Deck FSESCRN Start
- Deck FSESCRN Part 1 (Line 1861)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.fsescrn +++|PROC FSESCRN; 00002 M00S00002.fsescrn +++| BEGIN 00003 M00S00003.fsescrn +++|# 00004 M00S00004.fsescrn +++|*** FSESCRN - SCREEN EDITING MODULE. 00005 M00S00005.fsescrn +++|*
Line S00006 Modification History | |
---|---|
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00006 M01S00006.281l803 ---|* COPYRIGHT CONTROL DATA CORPORATION, 1983.
Line S00001 Modification History | |
---|---|
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00007 M01S00001.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00008 M00S00007.fsescrn +++|# 00009 M00S00008.fsescrn +++| 00010 M00S00009.fsescrn +++| DEF LISTCON #0#; 00011 M00S00010.fsescrn +++| 00012 M00S00011.fsescrn +++|*IFCALL SINGLE,COMFSGL 00013 M00S00012.fsescrn +++|*IFCALL ONLY,COMFONL 00014 M00S00013.fsescrn +++|*IFCALL MULTI,COMFMLT 00015 M00S00014.fsescrn +++|*CALL COMFFSE 00016 M00S00015.fsescrn +++|*CALL COMFDS1 00017 M00S00016.fsescrn +++|*CALL COMFVD2 00018 M00S00017.fsescrn +++|*CALL COMFDS2 00019 M00S00018.fsescrn +++|*CALL COMFTAB 00020 M00S00019.fsescrn +++| 00021 M00S00020.fsescrn +++|*CALL COMFVDT 00022 M00S00021.fsescrn +++| 00023 M00S00022.fsescrn +++|CONTROL IFEQ MULTI,1; 00024 M00S00023.fsescrn +++| XREF ARRAY RENTSTK [1:MAXREENT]; # SUBROUTINE STACK # 00025 M00S00024.fsescrn +++| BEGIN 00026 M00S00025.fsescrn +++| ITEM RSTK; 00027 M00S00026.fsescrn +++| END 00028 M00S00027.fsescrn +++| XREF ITEM RSTKPTR; 00029 M00S00028.fsescrn +++|CONTROL FI; 00030 M00S00029.fsescrn +++| 00031 M00S00030.fsescrn +++| 00032 M00S00031.fsescrn +++|XDEF 00033 M00S00032.fsescrn +++| BEGIN 00034 M00S00033.fsescrn +++|*CALL COMFXSC 00035 M00S00034.fsescrn +++| END 00036 M00S00035.fsescrn +++| 00037 M00S00036.fsescrn +++|XREF 00038 M00S00037.fsescrn +++| BEGIN 00039 M00S00038.fsescrn +++|*CALL COMFXVT 00040 M00S00039.fsescrn +++|*CALL COMFXTI 00041 M00S00040.fsescrn +++|*CALL COMFXFO 00042 M00S00041.fsescrn +++|*CALL COMFXSB 00043 M00S00042.fsescrn +++|*CALL COMFXED 00044 M00S00043.fsescrn +++| END 00045 M00S00044.fsescrn +++| 00046 M00S00045.fsescrn +++|XREF FUNC LENGTH; # COMPASS ROUTINES # 00047 M00S00046.fsescrn +++|XREF PROC MOVEWD; XREF PROC EXCHWD; 00048 M00S00047.fsescrn +++|# 00049 M00S00048.fsescrn +++| MASKS FOR SETTING THE VARIOUS ATTRIBUTES IN ATTRIBMASK (COMFVD2) 00050 M00S00049.fsescrn +++|# 00051 M00S00050.fsescrn +++| DEF MSKLOGICAL #O"4000"#; # LOGICAL ATTRIBUTE # 00052 M00S00051.fsescrn +++| DEF MSKPROTECT #O"2000"#; # PROTECT # 00053 M00S00052.fsescrn +++| DEF MSKGUARDMD #O"1000"#; # GUARD MODE # 00054 M00S00053.fsescrn +++| DEF MSKUNDERLN #O"0010"#; # UNDERLINE # 00055 M00S00054.fsescrn +++| DEF MSKALTERIN #O"0004"#; # ALTERNATE INTENSITY # 00056 M00S00055.fsescrn +++| DEF MSKINVERSE #O"0002"#; # INVERSE # 00057 M00S00056.fsescrn +++| DEF MSKBLINKMD #O"0001"#; # BLINK MODE # 00058 M00S00057.fsescrn +++|PAGE # DOSCREEN - SCREEN MANIPULATIONS # 00059 M00S00058.fsescrn +++| 00060 M00S00059.fsescrn +++| 00061 M00S00060.fsescrn +++|PROC DOSCREEN; 00062 M00S00061.fsescrn +++| IOBEGIN(DOSCREEN) 00063 M00S00062.fsescrn +++|# 00064 M00S00063.fsescrn +++|** DOSCREEN - MIMIC ON-SCREEN MANIPULATIONS IN INPUT. 00065 M00S00064.fsescrn +++|* 00066 M00S00065.fsescrn +++|* DOSCREEN PROCESSES ALL SCREEN MODE INPUT. IT PERFORMS 00067 M00S00066.fsescrn +++|* FILE MANIPULATIONS TO MIMIC SCREEN MANIPULATIONS. IT 00068 M00S00067.fsescrn +++|* KEEPS FILE POSITIONING UP TO DATE WITH THE USERS CURSOR 00069 M00S00068.fsescrn +++|* POSITIONING. IT COMPUTES NEW DEFAULT CURSOR POSITIONING 00070 M00S00069.fsescrn +++|* BETWEEN TRANSACTIONS. IT PROCESS SOME FUNCTION KEYS 00071 M00S00070.fsescrn +++|* INTERNALLY AND CONVERTS OTHER FUNCTION KEYS INTO COMMAND 00072 M00S00071.fsescrn +++|* STRINGS. DOSCREEN SHOULD BE CALLED ALTERNATING WITH THE 00073 M00S00072.fsescrn +++|* COMMAND SCANNER AND THE SCREEN PAINTER. 00074 M00S00073.fsescrn +++|* 00075 M00S00074.fsescrn +++|* ENTRY CMDLIN - REPAIRABLE COMMANDS IF ANY OR NULL. 00076 M00S00075.fsescrn +++|* OUTPUT CYCLE (PAINTSCREEN) EXECUTED. 00077 M00S00076.fsescrn +++|* VTXCUR, VTYCUR - CURSOR AS SET BY OUTPUT. 00078 M00S00077.fsescrn +++|* CURFILE, CURSPLIT, CURRENT - AS SET BY 00079 M00S00078.fsescrn +++|* COMMAND PROCESSING. 00080 M00S00079.fsescrn +++|* FILENAM[1-2], FILEATTR[1-2] - SET UP. 00081 M00S00080.fsescrn +++|* XSHIFT[1-2], YSHIFT[1-2] - SHIFT FACTORS. 00082 M00S00081.fsescrn +++|* TOPS(1-2), BOTS(1-2), BOTF(1-2) - SCREEN BOUNDARIES. 00083 M00S00082.fsescrn +++|* SETUPSCREEN ALREADY CALLED. (TITLEROW[1-2], 00084 M00S00083.fsescrn +++|* NUMROWS[1-2], ROWTYPE[1-2], ETC, SETUP) 00085 M00S00084.fsescrn +++|* ROWPAINT[ALL] - FALSE SINCE PAINTSCREEN CALLED. 00086 M00S00085.fsescrn +++|* FKEYNAME[ALL,ALL] - SETUP. 00087 M00S00086.fsescrn +++|* CHARRANGE - INDICATES LINE OR CHARACTER MARKING. 00088 M00S00087.fsescrn +++|* TABVTPROTM[0] - SETUP. 00089 M00S00088.fsescrn +++|* COMMANDROW - SETUP. 00090 M00S00089.fsescrn +++|* PROMPTING - INDICATES NORMAL OR SPECIAL PROMPT. 00091 M00S00090.fsescrn +++|* EDITFIELD - LOGICAL RIGHT LIMIT ON CHANGES. 00092 M00S00091.fsescrn +++|* 00093 M00S00092.fsescrn +++|* EXIT CMDLIN - REPAIRED OR NEWLY ENTERED COMMANDS. 00094 M00S00093.fsescrn +++|* ROWPAINT[ANY] - POSSIBLY TRUE. 00095 M00S00094.fsescrn +++|* VTXCUR, VTYCUR - CURSOR AS MOVED BY USER. 00096 M00S00095.fsescrn +++|* XCURSOR, YCURSOR - SET BY USER THEN POSSIBLY 00097 M00S00096.fsescrn +++|* UPDATED TO ADVANCE THRU FILE OR TO STAY 00098 M00S00097.fsescrn +++|* WITH DATA UPON AUTO HALF-PAGE ADVANCE. 00099 M00S00098.fsescrn +++|* XSHIFT[1-2], YSHIFT[1-2] - POSSIBLY UPDATED. 00100 M00S00099.fsescrn +++|* TOPS(1-2), BOTS(1-2), BOTF(1-2) - UPDATED. 00101 M00S00100.fsescrn +++|* CURFILE, CURSPLIT, CURRENT - AS SELECTED BY USER. 00102 M00S00101.fsescrn +++|* CURCURSOR - USERS LAST VTXCUR, SHIFTED. 00103 M00S00102.fsescrn +++|* HARDFN - FALSE TO ALLOW PROPER COMMAND OPERATION. 00104 M00S00103.fsescrn +++|* LIN - TEXT CORRESPONDING TO CURRENT, CURFILE. 00105 M00S00104.fsescrn +++|* 00106 M00S00105.fsescrn +++|* MACROS GETCHAR, SETCHAR, YTOL, LTOY. 00107 M00S00106.fsescrn +++|* 00108 M00S00107.fsescrn +++|* CALLS (INTERNAL) - ALIGN, CLEANLINE, DELTEXT, DSERRJMP, 00109 M00S00108.fsescrn +++|* EXTEND, INCRCURSOR, INSTEXT, MOVETEXT, REJECT, 00110 M00S00109.fsescrn +++|* SETCMD, SETCURSOR. 00111 M00S00110.fsescrn +++|* (EXTERNAL) - BAKZ, DELX, INSX, LENGTH, PAINTALL, 00112 M00S00111.fsescrn +++|* PAINTREST, PAINTSPLIT, SETBOTS, SETMARK, SETTOPS, 00113 M00S00112.fsescrn +++|* TRIMPAD, VDTBOO, VDTEOO, VDTINP, VDTPPI, VFYLOCK. 00114 M00S00113.fsescrn +++|* 00115 M00S00114.fsescrn +++|* USES ALIGNGOOD, COMPUTEDPOS, FKEYNDX, HARDFN, LINECHANGED, 00116 M00S00115.fsescrn +++|* OLDVTXCUR, OLDVTYCUR, READNAM, SCREENLIMIT, SCRNPT1, 00117 M00S00116.fsescrn +++|* SCRNPT2, SCRNPT3, SCRNPT4, SCRNPT5, SOFTTAB. 00118 M00S00117.fsescrn +++|* 00119 M00S00118.fsescrn +++|* NOTE - 00120 M00S00119.fsescrn +++|* 00121 M00S00120.fsescrn +++|* DOSCREEN MUST PROCESS ALL INPUT CHARACTERS. THE ONLY UN- 00122 M00S00121.fsescrn +++|* FINISHED BUSINESS IT MAY LEAVE WOULD BE THE CONTENTS OF THE 00123 M00S00122.fsescrn +++|* COMMAND BUFFER LINE. DOSCREEN CAN EXIT ONLY THROUGH THE 00124 M00S00123.fsescrn +++|* "DSEOI" SECTION OR THRU THE DSERRJMP ROUTINE. DOSCREEN MUST 00125 M00S00124.fsescrn +++|* THEREFORE BE FUNCTIONALLY EQUIVALENT IN BOTH SINGLE AND MULTI 00126 M00S00125.fsescrn +++|* USER VERSIONS. THE ONLY SINGLE/MULTI COMPILE-TIME DIFFERENCE 00127 M00S00126.fsescrn +++|* ALLOWABLE WOULD BE MODULE-DEPENDENT OPTIMIZATIONS WHICH CAUSE 00128 M00S00127.fsescrn +++|* NO TRANSITIONS TO OCCUR. 00129 M00S00128.fsescrn +++|# 00130 M00S00129.fsescrn +++| 00131 M00S00130.fsescrn +++| # NOTE -- SCREENSW AND VIRTERMATR MUST MATCH SCREENST # 00132 M00S00131.fsescrn +++|
Line S00132 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00133 M01S00132.ns2641 ---| SWITCH SCREENSW DSDUMMY, DSCHAR, DSINSC, DSDELC, DSINSL,
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00134 M01S00001.ns2641 +++| SWITCH SCREENSW DSCLRALL, DSCHAR, DSINSC, DSDELC, DSINSL, 00135 M00S00133.fsescrn +++| DSDELL, DSCLRPAG, DSCLREOP, DSCLRUNP, DSCLREOL, DSPOS, 00136 M00S00134.fsescrn +++| DSHOME, DSUP, DSDOWN, DSLEFT, DSRIGHT, DSFTAB, DSBTAB, 00137 M00S00135.fsescrn +++| DSRET, DSERAC, DSERAL, DSEOI, DSRESET, DSFKEY, DSGENERIC,
Line S00136 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00138 M01S00136.ns2641 ---| DSBAD, DSNOOP, DSCOORD, DSPROTECT, DSFIELD, DSRSRV1, DSRSRV2;
Line S00002 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00139 M01S00002.ns2641 +++| DSBAD, DSNOOP, DSCOORD, DSPROTECT, DSFIELD, DSCLRTAB, DSSETTAB; 00140 M00S00137.fsescrn +++| 00141 M00S00138.fsescrn +++| ARRAY VIRTERMATR [0:31]; # VIRTUAL TERMINAL ATTRIBUTES # 00142 M00S00139.fsescrn +++| BEGIN # INDEXED BY VDT ORDINAL # 00143 M00S00140.fsescrn +++| ITEM NEEDALIGN B(0,0,1)=[
Line S00141 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00144 M01S00141.ns2641 ---| FALSE, TRUE, TRUE, TRUE, # DUMMY, CHAR, IC, DC #
Line S00003 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00145 M01S00003.ns2641 +++| FALSE, TRUE, TRUE, TRUE, # CLRALL, CHAR, IC, DC # 00146 M00S00142.fsescrn +++| TRUE, TRUE, TRUE, TRUE, # IL, DL, CLRPAG, CLREOP # 00147 M00S00143.fsescrn +++| TRUE, TRUE, FALSE, FALSE, # CLRUNP, CLREOL, POS, HOME # 00148 M00S00144.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # UP, DOWN, LEFT, RIGHT # 00149 M00S00145.fsescrn +++| FALSE, FALSE, FALSE, TRUE, # FTAB, BTAB, RET, ERAC # 00150 M00S00146.fsescrn +++| TRUE, FALSE, FALSE, TRUE, # ERAL, EOI, RESET, FUNCTION # 00151 M00S00147.fsescrn +++| TRUE, FALSE, FALSE, FALSE, # GENERIC, BAD, NOOP, COORD #
Line S00148 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00152 M01S00148.ns2641 ---| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, 2 FILLERS #
Line S00004 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00153 M01S00004.ns2641 +++| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, CLRTAB, SETTAB# 00154 M00S00149.fsescrn +++| ]; 00155 M00S00150.fsescrn +++| ITEM NEEDCLEAN B(0,1,1)=[
Line S00151 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00156 M01S00151.ns2641 ---| FALSE, FALSE, FALSE, FALSE, # DUMMY, CHAR, IC, DC #
Line S00005 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00157 M01S00005.ns2641 +++| FALSE, FALSE, FALSE, FALSE, # CLRALL, CHAR, IC, DC # 00158 M00S00152.fsescrn +++| TRUE, TRUE, FALSE, FALSE, # IL, DL, CLRPAG, CLREOP # 00159 M00S00153.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # CLRUNP, CLREOL, POS, HOME # 00160 M00S00154.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # UP, DOWN, LEFT, RIGHT # 00161 M00S00155.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # FTAB, BTAB, RET, ERAC # 00162 M00S00156.fsescrn +++| FALSE, TRUE, FALSE, TRUE, # ERAL, EOI, RESET, FUNCTION # 00163 M00S00157.fsescrn +++| TRUE, FALSE, FALSE, FALSE, # GENERIC, BAD, NOOP, COORD #
Line S00158 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00164 M01S00158.ns2641 ---| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, 2 FILLERS #
Line S00006 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00165 M01S00006.ns2641 +++| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, CLRTAB, SETTAB# 00166 M00S00159.fsescrn +++| ]; 00167 M00S00160.fsescrn +++| ITEM NEEDUNLOCK B(0,2,1)=[
Line S00161 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00168 M01S00161.ns2641 ---| FALSE, TRUE, TRUE, TRUE, # DUMMY, CHAR, IC, DC #
Line S00007 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00169 M01S00007.ns2641 +++| FALSE, TRUE, TRUE, TRUE, # CLRALL, CHAR, IC, DC # 00170 M00S00162.fsescrn +++| TRUE, TRUE, FALSE, FALSE, # IL, DL, CLRPAG, CLREOP # 00171 M00S00163.fsescrn +++| FALSE, TRUE, FALSE, FALSE, # CLRUNP, CLREOL, POS, HOME # 00172 M00S00164.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # UP, DOWN, LEFT, RIGHT # 00173 M00S00165.fsescrn +++| FALSE, FALSE, FALSE, TRUE, # FTAB, BTAB, RET, ERAC # 00174 M00S00166.fsescrn +++| TRUE, FALSE, FALSE, FALSE, # ERAL, EOI, RESET, FUNCTION # 00175 M00S00167.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # GENERIC, BAD, NOOP, COORD #
Line S00168 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00176 M01S00168.ns2641 ---| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, 2 FILLERS #
Line S00008 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00177 M01S00008.ns2641 +++| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, CLRTAB, SETTAB# 00178 M00S00169.fsescrn +++| ]; 00179 M00S00170.fsescrn +++| ITEM NEEDCURSOR B(0,3,1)=[
Line S00171 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00180 M01S00171.ns2641 ---| FALSE, TRUE, TRUE, TRUE, # DUMMY, CHAR, IC, DC #
Line S00009 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00181 M01S00009.ns2641 +++| FALSE, TRUE, TRUE, TRUE, # CLRALL, CHAR, IC, DC # 00182 M00S00172.fsescrn +++| TRUE, TRUE, TRUE, TRUE, # IL, DL, CLRPAG, CLREOP # 00183 M00S00173.fsescrn +++| TRUE, TRUE, FALSE, FALSE, # CLRUNP, CLREOL, POS, HOME # 00184 M00S00174.fsescrn +++| FALSE, FALSE, FALSE, FALSE, # UP, DOWN, LEFT, RIGHT # 00185 M00S00175.fsescrn +++| FALSE, FALSE, FALSE, TRUE, # FTAB, BTAB, RET, ERAC # 00186 M00S00176.fsescrn +++| TRUE, FALSE, FALSE, TRUE, # ERAL, EOI, RESET, FUNCTION # 00187 M00S00177.fsescrn +++| TRUE, FALSE, FALSE, FALSE, # GENERIC, BAD, NOOP, COORD #
Line S00178 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00188 M01S00178.ns2641 ---| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, 2 FILLERS #
Line S00010 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00189 M01S00010.ns2641 +++| FALSE, TRUE, FALSE, FALSE # PROTECT, FIELD, CLRTAB, SETTAB# 00190 M00S00179.fsescrn +++| ]; 00191 M00S00180.fsescrn +++| ITEM NEEDLIMIT U(0,6,6)=[
Line S00181 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00192 M01S00181.ns2641 ---| 0, 1, 1, 1, # DUMMY, CHAR, IC, DC #
Line S00011 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00193 M01S00011.ns2641 +++| 0, 1, 1, 1, # CLRALL, CHAR, IC, DC # 00194 M00S00182.fsescrn +++| 1, 1, 1, 1, # IL, DL, CLRPAG, CLREOP # 00195 M00S00183.fsescrn +++| 2, 1, 1, 1, # CLRUNP, CLREOL, POS, HOME # 00196 M00S00184.fsescrn +++| 1, 1, 1, 1, # UP, DOWN, LEFT, RIGHT # 00197 M00S00185.fsescrn +++| 1, 1, 0, 1, # FTAB, BTAB, RET, ERAC # 00198 M00S00186.fsescrn +++| 1, 0, 0, 2, # ERAL, EOI, RESET, FUNCTION # 00199 M00S00187.fsescrn +++| 2, 0, 0, 0, # GENERIC, BAD, NOOP, COORD #
Line S00188 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00200 M01S00188.ns2641 ---| 0, 1, 0, 0 # PROTECT, FIELD, 2 FILLERS #
Line S00012 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00201 M01S00012.ns2641 +++| 0, 1, 0, 0 # PROTECT, FIELD, CLRTAB, SETTAB# 00202 M00S00189.fsescrn +++| ]; 00203 M00S00190.fsescrn +++| END 00204 M00S00191.fsescrn +++| 00205 M00S00192.fsescrn +++| BASED ARRAY KEYLIN[0:99]; ITEM KEYLINE; 00206 M00S00193.fsescrn +++|PAGE # SUBROUTINES INTERNAL TO DOSCREEN # 00207 M00S00194.fsescrn +++| 00208 M00S00195.fsescrn +++| 00209 M00S00196.fsescrn +++| PROC SETCURSOR; 00210 M00S00197.fsescrn +++| BEGIN 00211 M00S00198.fsescrn +++|# 00212 M00S00199.fsescrn +++|** SETCURSOR - SET CURSOR CONTROLS. 00213 M00S00200.fsescrn +++|* 00214 M00S00201.fsescrn +++|* ENTRY ROWTYPE[ALL], ROWSPLIT[ALL] - SETUP. 00215 M00S00202.fsescrn +++|* 00216 M00S00203.fsescrn +++|* EXIT XCURSOR, YCURSOR, COMPUTEDPOS - SETUP. 00217 M00S00204.fsescrn +++|* CURCURSOR - SET IF YCURSOR ON TEXT ROW. 00218 M00S00205.fsescrn +++|# 00219 M00S00206.fsescrn +++| XCURSOR=VTXCUR; 00220 M00S00207.fsescrn +++| YCURSOR=VTYCUR; 00221 M00S00208.fsescrn +++| COMPUTEDPOS=TRUE; 00222 M00S00209.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT" 00223 M00S00210.fsescrn +++| OR ROWTYPE[YCURSOR] EQ ROWST"TITLE" THEN 00224 M00S00211.fsescrn +++| BEGIN 00225 M00S00212.fsescrn +++| CURCURSOR=XCURSOR+XSHIFT[ROWSPLIT[YCURSOR]]; 00226 M00S00213.fsescrn +++| CURSPLIT=ROWSPLIT[YCURSOR]; 00227 M00S00214.fsescrn +++| END 00228 M00S00215.fsescrn +++| END # OF SETCURSOR # 00229 M00S00216.fsescrn +++| 00230 M00S00217.fsescrn +++| PROC ALIGN; 00231 M00S00218.fsescrn +++| IOBEGIN(ALIGN) 00232 M00S00219.fsescrn +++|# 00233 M00S00220.fsescrn +++|** ALIGN - ASSURE FILE ALIGNED WITH CURSOR. 00234 M00S00221.fsescrn +++|* 00235 M00S00222.fsescrn +++|* ENTRY YCURSOR - WHERE THE CURSOR IS. 00236 M00S00223.fsescrn +++|* CURRENT - MOST RECENT FILE POSITION. 00237 M00S00224.fsescrn +++|* ROWTYPE[ALL], ROWSPLIT[ALL] - SETUP. 00238 M00S00225.fsescrn +++|* TOPS(1-2), BOTF(1-2) - SETUP. 00239 M00S00226.fsescrn +++|* NUMROWS[1-2], SPLITFILE[1-2] - SETUP. 00240 M00S00227.fsescrn +++|* PROMPTING - WHETHER NORMAL OR SPECIAL DISPLAY. 00241 M00S00228.fsescrn +++|* 00242 M00S00229.fsescrn +++|* EXIT ALIGNGOOD - TRUE IF PROMPTING AND SUCCEEDED 00243 M00S00230.fsescrn +++|* IN GETTING TO RIGHT LINE. FALSE IF CURSOR NOT 00244 M00S00231.fsescrn +++|* ON TEXT OR IN AREA BEYOND LAST EXTANT LINE. 00245 M00S00232.fsescrn +++|* CURRENT, CURFILE, CURSPLIT - WHERE WE ARE. 00246 M00S00233.fsescrn +++|* CURF(CURFILE) - WHERE WE ARE. 00247 M00S00234.fsescrn +++|* 00248 M00S00235.fsescrn +++|* MACROS YTOL. 00249 M00S00236.fsescrn +++|* 00250 M00S00237.fsescrn +++|* CALLS CLEANLINE, POSZ. 00251 M00S00238.fsescrn +++|* 00252 M00S00239.fsescrn +++|* USES SCRNPT1. 00253 M00S00240.fsescrn +++|# 00254 M00S00241.fsescrn +++| ALIGNGOOD=FALSE; 00255 M00S00242.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT" OR
Line S00243 Modification History | |
---|---|
M01 (Removed by) | fsesc22 |
Seq # *Modification Id* Act ----------------------------+ 00256 M01S00243.fsesc22 ---| ROWTYPE[YCURSOR] EQ ROWST"TITLE" THEN
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc22 |
Seq # *Modification Id* Act ----------------------------+ 00257 M01S00001.fsesc22 +++| (ROWTYPE[YCURSOR] EQ ROWST"TITLE" AND 00258 M01S00002.fsesc22 +++| ROWSPLIT[YCURSOR] EQ CURSPLIT) THEN 00259 M00S00244.fsescrn +++| BEGIN 00260 M00S00245.fsescrn +++| EXTENDSIZE=0; 00261 M00S00246.fsescrn +++| CURSPLIT=ROWSPLIT[YCURSOR]; 00262 M00S00247.fsescrn +++| CURSPLIT=MIN(MAX(CURSPLIT,1),2); 00263 M00S00248.fsescrn +++| SCRNPT1=YTOL(YCURSOR,CURSPLIT); 00264 M00S00249.fsescrn +++| IF SCRNPT1 LQ MIN(TOPS(CURSPLIT)+NUMROWS[CURSPLIT], 00265 M00S00250.fsescrn +++| BOTF(SPLITFILE[CURSPLIT])-1) THEN 00266 M00S00251.fsescrn +++| BEGIN 00267 M00S00252.fsescrn +++| IF NOT PROMPTING AND ROWTYPE[YCURSOR] EQ 00268 M00S00253.fsescrn +++| ROWST"TEXT" THEN ALIGNGOOD=TRUE; 00269 M00S00254.fsescrn +++| IF CURRENT NQ SCRNPT1 00270 M00S00255.fsescrn +++| OR CURFILE NQ SPLITFILE[CURSPLIT] THEN 00271 M00S00256.fsescrn +++| BEGIN 00272 M00S00257.fsescrn +++| CLEANLINE; 00273 M00S00258.fsescrn +++| CURF(CURFILE)=CURRENT; 00274 M00S00259.fsescrn +++| POSZ(SCRNPT1); 00275 M00S00260.fsescrn +++| CURFILE=SPLITFILE[CURSPLIT]; 00276 M00S00261.fsescrn +++| END 00277 M00S00262.fsescrn +++| END 00278 M00S00263.fsescrn +++| ELSE 00279 M00S00264.fsescrn +++| BEGIN 00280 M00S00265.fsescrn +++| CLEANLINE; 00281 M00S00266.fsescrn +++| CURFILE=SPLITFILE[CURSPLIT]; 00282 M00S00267.fsescrn +++| POSZ(BOTF(CURFILE)-1); 00283 M00S00268.fsescrn +++| CURF(CURFILE)=CURRENT; 00284 M00S00269.fsescrn +++| EXTENDSIZE=SCRNPT1-BOTF(CURFILE)+1; 00285 M00S00270.fsescrn +++| END 00286 M00S00271.fsescrn +++| END 00287 M00S00272.fsescrn +++| IOEND # OF ALIGN # 00288 M00S00273.fsescrn +++| 00289 M00S00274.fsescrn +++| PROC EXTEND; 00290 M00S00275.fsescrn +++| IOBEGIN(EXTEND) 00291 M00S00276.fsescrn +++|# 00292 M00S00277.fsescrn +++|** EXTEND - LENGTHEN FILE TO MATCH CURSOR ALIGNMENT. 00293 M00S00278.fsescrn +++|* 00294 M00S00279.fsescrn +++|* ENTRY ALIGN ROUTINE RECENTLY CALLED. 00295 M00S00280.fsescrn +++|* ALIGNGOOD - RESULT OF ALIGN ROUTINE. 00296 M00S00281.fsescrn +++|* ROWTYPE[ALL], ROWSPLIT[ALL] - SETUP. 00297 M00S00282.fsescrn +++|* BOTF(1-2), SPLITFILE[1-2] - SETUP. 00298 M00S00283.fsescrn +++|* CURRENT - MOST RECENT FILE POSITION. 00299 M00S00284.fsescrn +++|* PROMPTING - NORMAL OR SPECIAL DISPLAY. 00300 M00S00285.fsescrn +++|* 00301 M00S00286.fsescrn +++|* EXIT ALIGNGOOD - ASSURED TRUE UNLESS PROMPTING. 00302 M00S00287.fsescrn +++|* CURSPLIT, CURRENT, CURFILE - WHERE WE ARE. 00303 M00S00288.fsescrn +++|* CURF(CURFILE) - WHERE WE WERE BEFORE CHANGING CURFILE. 00304 M00S00289.fsescrn +++|* HARDFN - FALSE IF WE EXTENDED THE FILE. 00305 M00S00290.fsescrn +++|* FILE IS POSSIBLY LONGER. 00306 M00S00291.fsescrn +++|* 00307 M00S00292.fsescrn +++|* MACROS YTOL. 00308 M00S00293.fsescrn +++|* 00309 M00S00294.fsescrn +++|* CALLS CLEANLINE, POSZ, INSZ. 00310 M00S00295.fsescrn +++|* 00311 M00S00296.fsescrn +++|* USES LIN. 00312 M00S00297.fsescrn +++|* 00313 M00S00298.fsescrn +++|* NOTE ALGORITHM ASSUMES CURSOR INDICATES FILE EXTENSION 00314 M00S00299.fsescrn +++|* ANYTIME IT IS ON A TEXT ROW BUT ALIGNGOOD IS OFF AND 00315 M00S00300.fsescrn +++|* THE FILE POSITION EXCEEDS BOTF(SPLITFILE[CURSPLIT]). 00316 M00S00301.fsescrn +++|# 00317 M00S00302.fsescrn +++| IF NOT ALIGNGOOD THEN 00318 M00S00303.fsescrn +++| BEGIN 00319 M00S00304.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT" THEN 00320 M00S00305.fsescrn +++| BEGIN 00321 M00S00306.fsescrn +++| CURSPLIT=ROWSPLIT[YCURSOR]; 00322 M00S00307.fsescrn +++| CURSPLIT=MIN(MAX(CURSPLIT,1),2); 00323 M00S00308.fsescrn +++| IF YTOL(YCURSOR,CURSPLIT) GQ BOTF(SPLITFILE[CURSPLIT]) THEN 00324 M00S00309.fsescrn +++| BEGIN 00325 M00S00310.fsescrn +++| CLEANLINE; 00326 M00S00311.fsescrn +++| CURF(CURFILE)=CURRENT; 00327 M00S00312.fsescrn +++| POSZ(BOTF(SPLITFILE[CURSPLIT])-1); 00328 M00S00313.fsescrn +++| LINE[0]=NULLIN; 00329 M00S00314.fsescrn +++| HARDFN=FALSE; 00330 M00S00315.fsescrn +++| FOR SCRNPT4=LTOY(CURRENT,CURSPLIT)+1 STEP 1 00331 M00S00316.fsescrn +++| UNTIL YCURSOR DO INSZ; 00332 M00S00317.fsescrn +++| IF NOT PROMPTING THEN ALIGNGOOD=TRUE; 00333 M00S00318.fsescrn +++| CURFILE=SPLITFILE[CURSPLIT]; 00334 M00S00319.fsescrn +++| END 00335 M00S00320.fsescrn +++| END 00336 M00S00321.fsescrn +++| END 00337 M00S00322.fsescrn +++| IOEND # OF EXTEND # 00338 M00S00323.fsescrn +++| 00339 M00S00324.fsescrn +++| PROC CLEANLINE; 00340 M00S00325.fsescrn +++| IOBEGIN(CLEANLINE) 00341 M00S00326.fsescrn +++|# 00342 M00S00327.fsescrn +++|** CLEANLINE - CLEAN UP LINE BUFFER AND FILE BEFORE MOVING. 00343 M00S00328.fsescrn +++|* 00344 M00S00329.fsescrn +++|* ENTRY LINECHANGED - LINE BUFFER RECENTLY ALTERED. 00345 M00S00330.fsescrn +++|* LIN - THE LINE BUFFER. 00346 M00S00331.fsescrn +++|* CURRENT - WHERE WE ARE IN THE FILE. 00347 M00S00332.fsescrn +++|* SOFTTAB - TRUE IF ANY CHANGE WAS SOFT-TAB OVERSTRIKE. 00348 M00S00333.fsescrn +++|* CURFILE - WHICH FILE BRACKET WE ARE IN. 00349 M00S00334.fsescrn +++|* CURSPLIT - WHICH SCREEN BRACKET WE ARE IN. 00350 M00S00335.fsescrn +++|* NUMBERED[CURFILE] - SEQUENCING MODE FOR THIS FILE. 00351 M00S00336.fsescrn +++|* WIDTH - USERS LINE WIDTH THRESHHOLD. 00352 M00S00337.fsescrn +++|* 00353 M00S00338.fsescrn +++|* EXIT ANY CHANGES TO LINE BUFFER ARE IN WORKFILE. 00354 M00S00339.fsescrn +++|* SEQUENCE NUMBERS ADJUSTED TO NUMWIDTH. 00355 M00S00340.fsescrn +++|* OUT-OF-SEQUENCE NUMBERS BLANKED OUT. 00356 M00S00341.fsescrn +++|* LINECHANGED, SOFTTAB - CLEARED. 00357 M00S00342.fsescrn +++|* ERRSTRING - POSSIBLE WIDE LINE WARNING. 00358 M00S00343.fsescrn +++|* ROWPAINT[THIS LINE] - POSSIBLY TRUE. 00359 M00S00344.fsescrn +++|* 00360 M00S00345.fsescrn +++|* MACROS SETCHAR, LTOY. 00361 M00S00346.fsescrn +++|* 00362 M00S00347.fsescrn +++|* CALLS COPYLIN, DOTAB, TRIMPAD, REPX, GETLNUM, SETLNUM, 00363 M00S00348.fsescrn +++|* PUSH, BAKNUM, POP, FWDNUM, LENGTH. 00364 M00S00349.fsescrn +++|* 00365 M00S00350.fsescrn +++|* USES WIDTHFOUND, LINENO, SCRNPT2, SCRNPT3. 00366 M00S00351.fsescrn +++|# 00367 M00S00352.fsescrn +++| IF LINECHANGED THEN 00368 M00S00353.fsescrn +++| BEGIN 00369 M00S00354.fsescrn +++| LINECHANGED=FALSE; 00370 M00S00355.fsescrn +++| IF SOFTTAB THEN 00371 M00S00356.fsescrn +++| BEGIN 00372 M00S00357.fsescrn +++| SOFTTAB=FALSE; 00373 M00S00358.fsescrn +++| COPYLIN(LIN,TTYLIN); 00374 M00S00359.fsescrn +++| DOTAB(NUMWIDBLK,NUMWIDBLK,NUMWIDBLK); 00375 M00S00360.fsescrn +++| COPYLIN(TTYLIN,LIN); 00376 M00S00361.fsescrn +++| END 00377 M00S00362.fsescrn +++| TRIMPAD; 00378 M00S00363.fsescrn +++| REPX; 00379 M00S00364.fsescrn +++| IF NUMBERED[CURFILE] NQ 0 THEN 00380 M00S00365.fsescrn +++| BEGIN # ASSURE ASCENDING NUMBERS # 00381 M00S00366.fsescrn +++| GETLNUM; # SEE IF ANY NUMBER TO FIX # 00382 M00S00367.fsescrn +++| IF WIDTHFOUND NQ 0 THEN 00383 M00S00368.fsescrn +++| BEGIN 00384 M00S00369.fsescrn +++| IF WIDTHFOUND NQ NUMWIDTH THEN # NOT STANDARD # 00385 M00S00370.fsescrn +++| BEGIN 00386 M00S00371.fsescrn +++| SETLNUM; 00387 M00S00372.fsescrn +++| HARDFN=FALSE; 00388 M00S00373.fsescrn +++| REPX; 00389 M00S00374.fsescrn +++| END 00390 M00S00375.fsescrn +++| ELSE # DIGITS OK BUT CHECK BLANK # 00391 M00S00376.fsescrn +++| BEGIN 00392 M00S00377.fsescrn +++| GETCHAR(LINE,NUMWIDTH,SCRNPT2); 00393 M00S00378.fsescrn +++| IF BLANKS NQ 0 AND SCRNPT2 NQ CBLANK THEN 00394 M00S00379.fsescrn +++| BEGIN 00395 M00S00380.fsescrn +++| RSHIFT(LIN,NUMWIDTH,1); 00396 M00S00381.fsescrn +++| SETCHAR(LINE,NUMWIDTH,CBLANK); 00397 M00S00382.fsescrn +++| END 00398 M00S00383.fsescrn +++| END 00399 M00S00384.fsescrn +++| SCRNPT2=LINENO; # VERIFY BOUNDARIES # 00400 M00S00385.fsescrn +++| PUSH; 00401 M00S00386.fsescrn +++| BAKNUM; 00402 M00S00387.fsescrn +++| POP; 00403 M00S00388.fsescrn +++| SCRNPT3=LINENO; 00404 M00S00389.fsescrn +++| PUSH; 00405 M00S00390.fsescrn +++| FWDNUM; 00406 M00S00391.fsescrn +++| POP; 00407 M00S00392.fsescrn +++| IF SCRNPT2 LQ SCRNPT3 OR SCRNPT2 GQ LINENO THEN 00408 M00S00393.fsescrn +++| BEGIN # NOT ASCEND SO BLANKOUT # 00409 M00S00394.fsescrn +++| FOR SCRNPT2=1 STEP 1 UNTIL NUMWIDTH 00410 M00S00395.fsescrn +++| DO SETCHAR(LINE,SCRNPT2-1,CBLANK); 00411 M00S00396.fsescrn +++| END 00412 M00S00397.fsescrn +++| HARDFN=FALSE; 00413 M00S00398.fsescrn +++| REPX; 00414 M00S00399.fsescrn +++| END 00415 M00S00400.fsescrn +++| END 00416 M00S00401.fsescrn +++| IF LENGTH(LIN) GR WIDTH+NUMWIDBLK AND ERRSTRING EQ " $" THEN 00417 M00S00402.fsescrn +++| BEGIN 00418 M00S00403.fsescrn +++| ERRSTRING="WIDE LINE$"; 00419 M00S00404.fsescrn +++| END 00420 M00S00405.fsescrn +++| END 00421 M00S00406.fsescrn +++| IOEND # OF CLEANLINE # 00422 M00S00407.fsescrn +++| 00423 M00S00408.fsescrn +++| 00424 M00S00409.fsescrn +++| PROC REJECT; 00425 M00S00410.fsescrn +++|# TITLE REJECT - REJECT CHANGE. # 00426 M00S00411.fsescrn +++| 00427 M00S00412.fsescrn +++| BEGIN # REJECT # 00428 M00S00413.fsescrn +++| 00429 M00S00414.fsescrn +++|# 00430 M00S00415.fsescrn +++|** REJECT - REJECT CHANGE. 00431 M00S00416.fsescrn +++|* 00432 M00S00417.fsescrn +++|* A KEYBOARD CHANGE WAS MADE ON A ROW THAT IN NOT ALLOWED. 00433 M00S00418.fsescrn +++|* FLAG THE ROW FOR REPAINT AND IF ITS A TITLE ROW, INDICATE 00434 M00S00419.fsescrn +++|* A TOTAL REPAINT. 00435 M00S00420.fsescrn +++|* 00436 M00S00421.fsescrn +++|* PROC REJECT 00437 M00S00422.fsescrn +++|# 00438 M00S00423.fsescrn +++| 00439 M00S00424.fsescrn +++| ROWPAINT[YCURSOR]=TRUE; 00440 M00S00425.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TITLE" THEN 00441 M00S00426.fsescrn +++| BEGIN 00442 M00S00427.fsescrn +++| IF ROWSPLIT[YCURSOR] EQ 1 THEN TITLE1LINE[0]=NULLIN; 00443 M00S00428.fsescrn +++| ELSE TITLE2LINE[0]=NULLIN; 00444 M00S00429.fsescrn +++| END 00445 M00S00430.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TITLE" 00446 M00S00431.fsescrn +++| OR ROWTYPE[YCURSOR] EQ ROWST"LABEL" 00447 M00S00432.fsescrn +++| OR ROWTYPE[YCURSOR] EQ ROWST"RESPONSE" THEN 00448 M00S00433.fsescrn +++| BEGIN 00449 M00S00434.fsescrn +++| ERRSTRING = "CHANGES OUTSIDE OF TEXT AREA DISCARDED$"; 00450 M00S00435.fsescrn +++| END 00451 M00S00436.fsescrn +++| 00452 M00S00437.fsescrn +++| END # REJECT # 00453 M00S00438.fsescrn +++| 00454 M00S00439.fsescrn +++| 00455 M00S00440.fsescrn +++| PROC MOVETEXT(TEXTLIN,OFFSET,FENCE); 00456 M00S00441.fsescrn +++| BEGIN 00457 M00S00442.fsescrn +++|# 00458 M00S00443.fsescrn +++|** MOVETEXT - UPDATE LINE BUFFER WITH OVERSTRIKE. 00459 M00S00444.fsescrn +++|* 00460 M00S00445.fsescrn +++|* ENTRY TEXTLIN - WHICH LINE BUFFER TO UPDATE. 00461 M00S00446.fsescrn +++|* XCURSOR, OFFSET - WHERE TO UPDATE. 00462 M00S00447.fsescrn +++|* CURSPLIT, YCURSOR - WHERE WE ARE. 00463 M00S00448.fsescrn +++|* FENCE - RIGHT HAND BOUNDARY FOR CHANGES. 00464 M00S00449.fsescrn +++|* ASCII[CURFILE] - INDICATES CASE SUPPRESSION. 00465 M00S00450.fsescrn +++|* TABCHAR - SOFT TAB CHARACTER. 00466 M00S00451.fsescrn +++|* VTCHAR - THE CHARACTER TO OVERSTRIKE. 00467 M00S00452.fsescrn +++|* 00468 M00S00453.fsescrn +++|* EXIT THE CHARACTER IS IN PLACE IF POSSIBLE. 00469 M00S00454.fsescrn +++|* SOFTTAB - POSSIBLY TRUE. 00470 M00S00455.fsescrn +++|* ROWPAINT[YCURSOR] - POSSIBLY TRUE. 00471 M00S00456.fsescrn +++|* 00472 M00S00457.fsescrn +++|* MACROS SETCHAR. 00473 M00S00458.fsescrn +++|* 00474 M00S00459.fsescrn +++|* CALLS EXTENDC, DSPLCOD. 00475 M00S00460.fsescrn +++|# 00476 M00S00461.fsescrn +++| 00477 M00S00462.fsescrn +++| ARRAY TEXTLIN[0:99]; 00478 M00S00463.fsescrn +++| BEGIN # ARRAY TEXTLIN # 00479 M00S00464.fsescrn +++| ITEM TEXTLINE I; # LINE BUFFER TO UPDATE # 00480 M00S00465.fsescrn +++| END # ARRAY TEXTLIN # 00481 M00S00466.fsescrn +++| 00482 M00S00467.fsescrn +++| ITEM OFFSET I; # COLUMN OFFSET # 00483 M00S00468.fsescrn +++| ITEM FENCE I; # RIGHT SIDE BOUNDARY # 00484 M00S00469.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE # 00485 M00S00470.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE # 00486 M00S00471.fsescrn +++| 00487 M00S00472.fsescrn +++| TMP2=XCURSOR+OFFSET; 00488 M00S00473.fsescrn +++| IF TMP2 GQ FENCE THEN RETURN; 00489 M00S00474.fsescrn +++| EXTENDC(TEXTLIN,TMP2); 00490 M00S00475.fsescrn +++| TMP1=XLTXPINT[VTCHAR]; 00491 M00S00476.fsescrn +++| IF ASCII[CURFILE] LQ 1 THEN # SUPPRESS LOWER CASE # 00492 M00S00477.fsescrn +++| BEGIN 00493 M00S00478.fsescrn +++| # NEXT CODE IS DEPENDENT ON PRECISE VALUES OF INTERNAL CHARSET # 00494 M00S00479.fsescrn +++| CONTROL IFNQ CLEFTCURL,O"133"; DEFERROR; CONTROL FI; 00495 M00S00480.fsescrn +++| CONTROL IFNQ CVERTICAL,O"134"; DEFERROR; CONTROL FI; 00496 M00S00481.fsescrn +++| CONTROL IFNQ CRITECURL,O"135"; DEFERROR; CONTROL FI; 00497 M00S00482.fsescrn +++| CONTROL IFNQ CTILDE,O"136"; DEFERROR; CONTROL FI; 00498 M00S00483.fsescrn +++| CONTROL IFNQ CGRAVE,O"100"; DEFERROR; CONTROL FI; 00499 M00S00484.fsescrn +++| CONTROL IFNQ CCOLON,O"000"; DEFERROR; CONTROL FI; 00500 M00S00485.fsescrn +++| # ISSUE WARNING FOR NON-EXISTENT DISPLAY CODE CHARACTERS # 00501 M00S00486.fsescrn +++| IF (TMP1 GQ O"133" AND TMP1 LQ O"136") 00502 M00S00487.fsescrn +++| OR (TMP1 EQ O"100") THEN ROWPAINT[YCURSOR]=TRUE; 00503 M00S00488.fsescrn +++| IF (B<00,01>MEM[CSMR] EQ 0) 00504 M00S00489.fsescrn +++| AND (TMP1 EQ O"000") THEN ROWPAINT[YCURSOR]=TRUE; 00505 M00S00490.fsescrn +++| DSPLCOD(TMP1); # SUPPRESS LOWER CASE # 00506 M00S00491.fsescrn +++| END 00507 M00S00492.fsescrn +++| SETCHAR(TEXTLINE,TMP2,TMP1); 00508 M00S00493.fsescrn +++| IF TMP1 EQ TABCHAR THEN 00509 M00S00494.fsescrn +++| BEGIN 00510 M00S00495.fsescrn +++| SOFTTAB=TRUE; 00511 M00S00496.fsescrn +++| ROWPAINT[YCURSOR]=TRUE; 00512 M00S00497.fsescrn +++| END 00513 M00S00498.fsescrn +++| END # MOVETEXT # 00514 M00S00499.fsescrn +++| 00515 M00S00500.fsescrn +++| 00516 M00S00501.fsescrn +++| PROC INSTEXT(TEXTLIN,OFFSET,FENCE); 00517 M00S00502.fsescrn +++| BEGIN 00518 M00S00503.fsescrn +++|# 00519 M00S00504.fsescrn +++|** INSTEXT - OPEN UP SPACE FOR CHARACTER INSERTION. 00520 M00S00505.fsescrn +++|* 00521 M00S00506.fsescrn +++|* ENTRY SAME AS MOVETEXT ROUTINE. 00522 M00S00507.fsescrn +++|* 00523 M00S00508.fsescrn +++|* EXIT THE CHARACTER SPACE IS OPENED UP. 00524 M00S00509.fsescrn +++|* 00525 M00S00510.fsescrn +++|* MACROS SETCHAR. 00526 M00S00511.fsescrn +++|* 00527 M00S00512.fsescrn +++|* CALLS RSHIFT, LSHIFT. 00528 M00S00513.fsescrn +++|# 00529 M00S00514.fsescrn +++| 00530 M00S00515.fsescrn +++| ARRAY TEXTLIN[0:99]; 00531 M00S00516.fsescrn +++| BEGIN # ARRAY TEXTLIN # 00532 M00S00517.fsescrn +++| ITEM TEXTLINE I; # LINE BUFFER TO UPDATE # 00533 M00S00518.fsescrn +++| END # ARRAY TEXTLIN # 00534 M00S00519.fsescrn +++| 00535 M00S00520.fsescrn +++| ITEM OFFSET I; # COLUMN OFFSET # 00536 M00S00521.fsescrn +++| ITEM FENCE I; # RIGHT SIDE BOUNDARY # 00537 M00S00522.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE # 00538 M00S00523.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE # 00539 M00S00524.fsescrn +++| 00540 M00S00525.fsescrn +++| TMP1=XCURSOR+OFFSET; 00541 M00S00526.fsescrn +++| IF TMP1 GQ FENCE THEN RETURN; 00542 M00S00527.fsescrn +++| RSHIFT(TEXTLIN,TMP1,1); 00543 M00S00528.fsescrn +++| TMP2=XLTXPINT[VTCHAR]; 00544 M00S00529.fsescrn +++| IF ASCII[CURFILE] LQ 1 THEN # SUPPRESS LOWER CASE # 00545 M00S00530.fsescrn +++| BEGIN 00546 M00S00531.fsescrn +++| # NEXT CODE IS DEPENDENT ON PRECISE VALUES OF INTERNAL CHARSET # 00547 M00S00532.fsescrn +++| CONTROL IFNQ CLEFTCURL,O"133"; DEFERROR; CONTROL FI; 00548 M00S00533.fsescrn +++| CONTROL IFNQ CVERTICAL,O"134"; DEFERROR; CONTROL FI; 00549 M00S00534.fsescrn +++| CONTROL IFNQ CRITECURL,O"135"; DEFERROR; CONTROL FI; 00550 M00S00535.fsescrn +++| CONTROL IFNQ CTILDE,O"136"; DEFERROR; CONTROL FI; 00551 M00S00536.fsescrn +++| CONTROL IFNQ CGRAVE,O"100"; DEFERROR; CONTROL FI; 00552 M00S00537.fsescrn +++| CONTROL IFNQ CCOLON,O"000"; DEFERROR; CONTROL FI; 00553 M00S00538.fsescrn +++| # ISSUE WARNING FOR NON-EXISTENT DISPLAY CODE CHARACTERS # 00554 M00S00539.fsescrn +++| IF (TMP2 GQ O"133" AND TMP2 LQ O"136") 00555 M00S00540.fsescrn +++| OR (TMP2 EQ O"100") THEN ROWPAINT[YCURSOR]=TRUE; 00556 M00S00541.fsescrn +++| IF (B<00,01>MEM[CSMR] EQ 0) 00557 M00S00542.fsescrn +++| AND (TMP2 EQ O"000") THEN ROWPAINT[YCURSOR]=TRUE; 00558 M00S00543.fsescrn +++| DSPLCOD(TMP2); # SUPPRESS LOWER CASE # 00559 M00S00544.fsescrn +++| END 00560 M00S00545.fsescrn +++| SETCHAR(TEXTLINE,TMP1,TMP2); 00561 M00S00546.fsescrn +++| IF TMP2 EQ TABCHAR THEN 00562 M00S00547.fsescrn +++| BEGIN 00563 M00S00548.fsescrn +++| SOFTTAB=TRUE; 00564 M00S00549.fsescrn +++| ROWPAINT[YCURSOR]=TRUE; 00565 M00S00550.fsescrn +++| END 00566 M00S00551.fsescrn +++| IF FENCE LS BUFCM1 THEN 00567 M00S00552.fsescrn +++| BEGIN 00568 M00S00553.fsescrn +++| LSHIFT(TEXTLIN,EDITFIELD+1,1); 00569 M00S00554.fsescrn +++| END 00570 M00S00555.fsescrn +++| END # INSTEXT # 00571 M00S00556.fsescrn +++| 00572 M00S00557.fsescrn +++| 00573 M00S00558.fsescrn +++| PROC DELTEXT(TEXTLIN,OFFSET,FENCE); 00574 M00S00559.fsescrn +++| BEGIN 00575 M00S00560.fsescrn +++|# 00576 M00S00561.fsescrn +++|** DELTEXT - DELETE ONE CHARACTER. 00577 M00S00562.fsescrn +++|* 00578 M00S00563.fsescrn +++|* ENTRY SAME AS MOVETEXT. 00579 M00S00564.fsescrn +++|* 00580 M00S00565.fsescrn +++|* EXIT TEXT SHIFTED TO CLOSEUP ONE PLACE. 00581 M00S00566.fsescrn +++|* 00582 M00S00567.fsescrn +++|* MACROS SETCHAR. 00583 M00S00568.fsescrn +++|* 00584 M00S00569.fsescrn +++|* CALLS LSHIFT, RSHIFT. 00585 M00S00570.fsescrn +++|# 00586 M00S00571.fsescrn +++| 00587 M00S00572.fsescrn +++| ARRAY TEXTLIN[0:99]; 00588 M00S00573.fsescrn +++| BEGIN # ARRAY TEXTLIN # 00589 M00S00574.fsescrn +++| ITEM TEXTLINE I; # LINE BUFFER TO UPDATE # 00590 M00S00575.fsescrn +++| END # ARRAY TEXTLIN # 00591 M00S00576.fsescrn +++| 00592 M00S00577.fsescrn +++| ITEM OFFSET I; # COLUMN OFFSET # 00593 M00S00578.fsescrn +++| ITEM FENCE I; # RIGHT SIDE BOUNDARY # 00594 M00S00579.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE # 00595 M00S00580.fsescrn +++| 00596 M00S00581.fsescrn +++| TMP1=XCURSOR+OFFSET; 00597 M00S00582.fsescrn +++| IF TMP1 GQ FENCE THEN RETURN; 00598 M00S00583.fsescrn +++| LSHIFT(TEXTLIN,TMP1+1,1); 00599 M00S00584.fsescrn +++| IF FENCE LS BUFCM1 THEN 00600 M00S00585.fsescrn +++| BEGIN 00601 M00S00586.fsescrn +++| RSHIFT(TEXTLIN,EDITFIELD-1,1); 00602 M00S00587.fsescrn +++| SETCHAR(TEXTLINE,EDITFIELD-1,CBLANK); 00603 M00S00588.fsescrn +++| END 00604 M00S00589.fsescrn +++| END # DELTEXT # 00605 M00S00590.fsescrn +++| 00606 M00S00591.fsescrn +++| 00607 M00S00592.fsescrn +++| PROC DSERRJMP(STR); # DOSCREEN ERROR JUMP # 00608 M00S00593.fsescrn +++| IOBEGIN(DSERRJMP) 00609 M00S00594.fsescrn +++|# 00610 M00S00595.fsescrn +++|** DSERRJMP - ERROR JUMP FROM DOSCREEN. 00611 M00S00596.fsescrn +++|* 00612 M00S00597.fsescrn +++|* ENTRY STR - ERROR MESSAGE. 00613 M00S00598.fsescrn +++|* PROMPTING - NORMAL OR SPECIAL DISPLAY. 00614 M00S00599.fsescrn +++|* COMMANDROW - SETUP. 00615 M00S00600.fsescrn +++|* 00616 M00S00601.fsescrn +++|* EXIT VIA ERRJUMP. 00617 M00S00602.fsescrn +++|* CMDLIN - NULLED OUT. 00618 M00S00603.fsescrn +++|* ERRSTRING - CONTAINS MESSAGE. 00619 M00S00604.fsescrn +++|* TOKENPOS - MINUS ONE FOR ERRJUMP. 00620 M00S00605.fsescrn +++|* ROWPAINT[COMMANDROW] - TRUE. 00621 M00S00606.fsescrn +++|* ROWPAINT[ALL] - POSSIBLY TRUE. 00622 M00S00607.fsescrn +++|* 00623 M00S00608.fsescrn +++|* CALLS PAINTALL, VDTBEL, VDTDRN, ERRJUMP. 00624 M00S00609.fsescrn +++|* 00625 M00S00610.fsescrn +++|* NOTE THIS ROUTINE UNCONDITIONALLY USES ERRJUMP, THUS 00626 M00S00611.fsescrn +++|* CONTROL WILL NEVER RETURN TO THE CALLER. DSERRJMP 00627 M00S00612.fsescrn +++|* IS THE ONLY WAY TO CALL ERRJUMP FROM DOSCREEN OR 00628 M00S00613.fsescrn +++|* ANY OF ITS INTERNAL ROUTINES. 00629 M00S00614.fsescrn +++|# 00630 M00S00615.fsescrn +++| ITEM STR C(40); 00631 M00S00616.fsescrn +++| ERRSTRING=STR; 00632 M00S00617.fsescrn +++| ROWPAINT[COMMANDROW]=TRUE; 00633 M00S00618.fsescrn +++| IF PROMPTING THEN PAINTALL; 00634 M00S00619.fsescrn +++| VDTBEL; 00635 M00S00620.fsescrn +++| VDTDRN; # ASSURE INPUT BUFFER CLEAN # 00636 M00S00621.fsescrn +++| TOKENPOS=-1; # ASSURE OLD CURSOR POSITION # 00637 M00S00622.fsescrn +++| CMDLINE[0]=NULLIN; 00638 M00S00623.fsescrn +++| ERRJUMP(ERRSTRING); # CONTROL DOES NOT RETURN # 00639 M00S00624.fsescrn +++| IOEND # OF DSERRJMP # 00640 M00S00625.fsescrn +++| 00641 M00S00626.fsescrn +++| PROC SETCMD(CMD); 00642 M00S00627.fsescrn +++| BEGIN 00643 M00S00628.fsescrn +++|# 00644 M00S00629.fsescrn +++|** SETCMD - ADD CHARACTER STRING TO COMMAND BUFFER. 00645 M00S00630.fsescrn +++|* 00646 M00S00631.fsescrn +++|* ENTRY CMD - STRING TO BE ADDED, 10 CHARS IN DISPLAY CODE. 00647 M00S00632.fsescrn +++|* CMDLIN - ANY EXISTING COMMAND CONTENT. (INTERNAL CODE) 00648 M00S00633.fsescrn +++|* 00649 M00S00634.fsescrn +++|* EXIT CMDLIN - UPDATED. 00650 M00S00635.fsescrn +++|* 00651 M00S00636.fsescrn +++|* MACROS SETCHAR. 00652 M00S00637.fsescrn +++|* 00653 M00S00638.fsescrn +++|* CALLS LENGTH. 00654 M00S00639.fsescrn +++|* 00655 M00S00640.fsescrn +++|* USES SCRNPT3, SCRNPT4, SCRNPT5. 00656 M00S00641.fsescrn +++|# 00657 M00S00642.fsescrn +++| ITEM CMD C(10); 00658 M00S00643.fsescrn +++| SCRNPT4=LENGTH(CMDLIN); 00659 M00S00644.fsescrn +++| IF SCRNPT4+10 LS BUFCM1 THEN 00660 M00S00645.fsescrn +++| BEGIN 00661 M00S00646.fsescrn +++| SETCHAR(CMDLINE,SCRNPT4,CSEMCOLON); 00662 M00S00647.fsescrn +++| FOR SCRNPT5=0 STEP 1 UNTIL 9 DO 00663 M00S00648.fsescrn +++| BEGIN 00664 M00S00649.fsescrn +++| SCRNPT3=XLTDSPINT[C<SCRNPT5,1>CMD]; 00665 M00S00650.fsescrn +++| SETCHAR(CMDLINE,SCRNPT4+1+SCRNPT5,SCRNPT3); 00666 M00S00651.fsescrn +++| END 00667 M00S00652.fsescrn +++| SETCHAR(CMDLINE,SCRNPT4+11,CENDLINE); 00668 M00S00653.fsescrn +++| END 00669 M00S00654.fsescrn +++| END # OF SETCMD # 00670 M00S00655.fsescrn +++| 00671 M00S00656.fsescrn +++| 00672 M00S00657.fsescrn +++| PROC ADDTOCMD; 00673 M00S00658.fsescrn +++| BEGIN 00674 M00S00659.fsescrn +++| # ADD TEXT FROM KEYLINE TO CMDLINE # 00675 M00S00660.fsescrn +++| SCRNPT3=LENGTH(CMDLIN); 00676 M00S00661.fsescrn +++| SCRNPT2=LENGTH(KEYLIN); 00677 M00S00662.fsescrn +++| IF SCRNPT3+SCRNPT2 LS BUFCM1 THEN 00678 M00S00663.fsescrn +++| BEGIN 00679 M00S00664.fsescrn +++| SETCHAR(CMDLINE,SCRNPT3,CSEMCOLON); 00680 M00S00665.fsescrn +++| FOR SCRNPT4=0 STEP 1 UNTIL SCRNPT2 DO 00681 M00S00666.fsescrn +++| BEGIN 00682 M00S00667.fsescrn +++| GETCHAR(KEYLINE,SCRNPT4,SCRNPT5); 00683 M00S00668.fsescrn +++| SETCHAR(CMDLINE,SCRNPT3+SCRNPT4+1,SCRNPT5); 00684 M00S00669.fsescrn +++| IF (SCRNPT5 EQ CAMPER) AND (NOT PROMPTING) 00685 M00S00670.fsescrn +++| AND (EXPANDAT LS 0) THEN EXPANDAT=SCRNPT3+SCRNPT4+1; 00686 M00S00671.fsescrn +++| END 00687 M00S00672.fsescrn +++| END 00688 M00S00673.fsescrn +++| END # ADDTOCMD # 00689 M00S00674.fsescrn +++| 00690 M00S00675.fsescrn +++| 00691 M00S00676.fsescrn +++| PROC INCRCURSOR; 00692 M00S00677.fsescrn +++|# TITLE INCRCURSOR - INCREMENT CURSOR. # 00693 M00S00678.fsescrn +++| 00694 M00S00679.fsescrn +++| BEGIN # INCRCURSOR # 00695 M00S00680.fsescrn +++| 00696 M00S00681.fsescrn +++|# 00697 M00S00682.fsescrn +++|** INCRCURSOR - INCREMENT CURSOR. 00698 M00S00683.fsescrn +++|* 00699 M00S00684.fsescrn +++|* EXIT XCURSOR - ZERO. 00700 M00S00685.fsescrn +++|* YCURSOR - USERS CURSOR OR ONE PLACE BEYOND. 00701 M00S00686.fsescrn +++|* 00702 M00S00687.fsescrn +++|* CALLS SETCURSOR. 00703 M00S00688.fsescrn +++|# 00704 M00S00689.fsescrn +++| 00705 M00S00690.fsescrn +++| SETCURSOR; 00706 M00S00691.fsescrn +++| XCURSOR=0; 00707 M00S00692.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT" THEN YCURSOR=YCURSOR+1; 00708 M00S00693.fsescrn +++| 00709 M00S00694.fsescrn +++| END # INCRCURSOR # 00710 M00S00695.fsescrn +++|PAGE # START OF DOSCREEN MAIN CODE # 00711 M00S00696.fsescrn +++| 00712 M00S00697.fsescrn +++| 00713 M00S00698.fsescrn +++| SCREENLIMIT=0; 00714 M00S00699.fsescrn +++| COMPUTEDPOS=FALSE; 00715 M00S00700.fsescrn +++| VDTEOO; # ISSUE INPUT CONTROL PROMPT # 00716 M00S00701.fsescrn +++| VDTPPI; # GET INPUT, VERIFY XPARENT # 00717 M00S00702.fsescrn +++| VDTBOO; # START NEW OUTPUT CYCLE #
Line S00703 Modification History | |
---|---|
M01 (Removed by) | fsesc24 |
Seq # *Modification Id* Act ----------------------------+ 00718 M01S00703.fsesc24 ---| IF VTORDN NQ 0 THEN DSERRJMP("PLEASE RE-ENTER INPUT$");
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc24 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00704.fsescrn +++| XCURSOR=0; 00728 M00S00705.fsescrn +++| 00729 M00S00706.fsescrn +++| FIRSTEVENT=TRUE; 00730 M00S00707.fsescrn +++| GOTO DSLOOP2; 00731 M00S00708.fsescrn +++| 00732 M00S00709.fsescrn +++|# 00733 M00S00710.fsescrn +++| SCREEN ROUTINES RETURN BASED UPON WHERE THEY WOULD LIKE 00734 M00S00711.fsescrn +++| THE CURSOR IF <EOL> WERE ENTERED IMMEDIATELY AFTER THE 00735 M00S00712.fsescrn +++| ROUTINE. THE CHOICES ARE 00736 M00S00713.fsescrn +++| 00737 M00S00714.fsescrn +++| DSLOOP: LEAVE THE CURSOR WHERE IT IS. 00738 M00S00715.fsescrn +++| DSX0Y1: SET X TO ZERO, INCREMENT Y IF IN VALID TEXT. 00739 M00S00716.fsescrn +++| LEAVE Y WHERE IT IS IF CANNOT INCREMENT. 00740 M00S00717.fsescrn +++|# 00741 M00S00718.fsescrn +++| 00742 M00S00719.fsescrn +++|DSX0Y1: 00743 M00S00720.fsescrn +++| INCRCURSOR; 00744 M00S00721.fsescrn +++|DSLOOP: 00745 M00S00722.fsescrn +++| FIRSTEVENT=FALSE; 00746 M00S00723.fsescrn +++|DSLOOP2: 00747 M00S00724.fsescrn +++| OLDVTXCURS=VTXCUR; 00748 M00S00725.fsescrn +++| OLDVTYCURS=VTYCUR; 00749 M00S00726.fsescrn +++| VDTIINP; 00750 M00S00727.fsescrn +++|DSLOOP3: 00751 M00S00728.fsescrn +++| IF SCREENLIMIT LS 2 THEN 00752 M00S00729.fsescrn +++| BEGIN 00753 M00S00730.fsescrn +++| IF NEEDCURSOR[VTORDN] THEN SETCURSOR; 00754 M00S00731.fsescrn +++| IF NEEDALIGN[VTORDN] THEN ALIGN; 00755 M00S00732.fsescrn +++| IF NEEDCLEAN[VTORDN] THEN CLEANLINE; 00756 M00S00733.fsescrn +++| END 00757 M00S00734.fsescrn +++| IF NEEDLIMIT[VTORDN] NQ 0 THEN 00758 M00S00735.fsescrn +++| BEGIN 00759 M00S00736.fsescrn +++| IF NEEDLIMIT[VTORDN] LS SCREENLIMIT AND SCREENLIMIT NQ 0 THEN 00760 M00S00737.fsescrn +++| BEGIN 00761 M00S00738.fsescrn +++| PAINTALL;
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc29 |
Seq # *Modification Id* Act ----------------------------+ 00762 M01S00001.fsesc29 +++| VTINCR = 0; # DISABLE CURSOR ADVANCE # 00763 M00S00739.fsescrn +++| DSERRJMP("RETURN MUST FOLLOW FUNCTION KEY$"); 00764 M00S00740.fsescrn +++| END 00765 M00S00741.fsescrn +++| SCREENLIMIT=NEEDLIMIT[VTORDN]; 00766 M00S00742.fsescrn +++| END
Line S00743 Modification History | |
---|---|
M01 (Removed by) | fsesc26 |
Seq # *Modification Id* Act ----------------------------+ 00767 M01S00743.fsesc26 ---| IF NEEDUNLOCK[VTORDN] AND YCURSOR NQ COMMANDROW THEN
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc26 |
Seq # *Modification Id* Act ----------------------------+ 00768 M01S00001.fsesc26 +++| IF NEEDUNLOCK[VTORDN] AND ROWTYPE[YCURSOR] EQ ROWST"TEXT" THEN 00769 M00S00744.fsescrn +++| BEGIN 00770 M00S00745.fsescrn +++| IF LOCKED[CURFILE] NQ 0 THEN 00771 M00S00746.fsescrn +++| BEGIN 00772 M00S00747.fsescrn +++| ROWPAINT[YCURSOR]=TRUE; # CURRENT LINE IS SPOILED # 00773 M00S00748.fsescrn +++| IF VTORDN EQ SCREENST"INSL" OR VTORDN EQ SCREENST"DELL" THEN 00774 M00S00749.fsescrn +++| BEGIN # LOWER LINES ARE SPOILED # 00775 M00S00750.fsescrn +++| PAINTSPLIT; # AT LEAST TILL FIELD PROTECT # 00776 M00S00751.fsescrn +++| IF NOT TABVTPROTM[0] THEN PAINTREST(YCURSOR); 00777 M00S00752.fsescrn +++| END 00778 M00S00753.fsescrn +++| DSERRJMP("CANNOT CHANGE READ-ONLY FILE$"); 00779 M00S00754.fsescrn +++| END 00780 M00S00755.fsescrn +++| END 00781 M00S00756.fsescrn +++| HARDFN=TRUE; 00782 M00S00757.fsescrn +++| GOTO SCREENSW[VTORDN]; 00783 M00S00758.fsescrn +++|
Line S00759 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 00784 M01S00759.ns2641 ---|DSDUMMY: DSUP: DSDOWN: DSLEFT: DSRIGHT: DSRET: 00785 M01S00760.ns2641 ---|DSNOOP: DSCOORD: DSPROTECT: DSRSRV1: DSRSRV2:
Line S00013 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00761.fsescrn +++| GOTO DSLOOP; 00793 M00S00762.fsescrn +++| 00794 M00S00763.fsescrn +++| 00795 M00S00764.fsescrn +++|DSPOS: 00796 M00S00765.fsescrn +++|DSRESET: 00797 M00S00766.fsescrn +++| GOTO DSBAD; 00798 M00S00767.fsescrn +++| 00799 M00S00768.fsescrn +++|DSEOI: 00800 M00S00769.fsescrn +++| # NOTE THAT AN EOI VDT EVENT IS NOT TAGGED FOR EITHER CURSOR # 00801 M00S00770.fsescrn +++| # SETTING OR FILE POSITION ALIGNMENT. THE DSEOI SECTION DOES #
Line S00771 Modification History | |
---|---|
M01 (Removed by) | fsesc27 |
Seq # *Modification Id* Act ----------------------------+ 00802 M01S00771.fsesc27 ---| # THIS MANUALLY SO WE CAN ALIGN THE FILE ON THE BASIS OF THE # 00803 M01S00772.fsesc27 ---| # LAST SIGNIFICANT CURSOR ADDRESS BEFORE THE RETURN KEY WAS # 00804 M01S00773.fsesc27 ---| # STRUCK, WITHOUT BEING CONFUSED BY THE CURSOR POSITION FOR # 00805 M01S00774.fsesc27 ---| # THE RETURN KEY ITSELF. #
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc27 |
Seq # *Modification Id* Act ----------------------------+ 00806 M01S00001.fsesc27 +++| # THIS MANUALLY TO ALLOW FOR REACTION TO VARYING CONDITIONS. # 00807 M00S00775.fsescrn +++| CLEANLINE; 00808 M00S00776.fsescrn +++| IF SCREENLIMIT LS 2 THEN 00809 M00S00777.fsescrn +++| BEGIN
Line S00002 Modification History | |
---|---|
M01 (Added by) | fsesc27 |
Seq # *Modification Id* Act ----------------------------+ 00810 M01S00002.fsesc27 +++| IF COMPUTEDPOS THEN SETCURSOR; 00811 M00S00778.fsescrn +++| ALIGN;
Line S00779 Modification History | |
---|---|
M01 (Removed by) | fsesc27 |
Seq # *Modification Id* Act ----------------------------+ 00812 M01S00779.fsesc27 ---| IF COMPUTEDPOS THEN 00813 M01S00780.fsesc27 ---| BEGIN 00814 M01S00781.fsesc27 ---| IF OLDVTXCURS NQ VTXCUR OR OLDVTYCURS NQ VTYCUR THEN 00815 M01S00782.fsesc27 ---| BEGIN # USER MOVED CURSOR BEFORE EOI # 00816 M01S00783.fsesc27 ---| INCRCURSOR; 00817 M01S00784.fsesc27 ---| END 00818 M01S00785.fsesc27 ---| END 00819 M01S00786.fsesc27 ---| ELSE INCRCURSOR;
Line S00003 Modification History | |
---|---|
M01 (Added by) | fsesc27 |
Seq # *Modification Id* Act ----------------------------+ 00820 M01S00003.fsesc27 +++| INCRCURSOR; 00821 M00S00787.fsescrn +++| IF LENGTH(CMDLIN) EQ 0 AND YCURSOR EQ VTYCUR+1 AND
Line S00788 Modification History | |
---|---|
M01 (Removed by) | fsesc25 |
Seq # *Modification Id* Act ----------------------------+ 00822 M01S00788.fsesc25 ---| VTYCUR EQ TITLEROW[CURSPLIT]+NUMROWS[CURSPLIT] THEN
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc25 |
Seq # *Modification Id* Act ----------------------------+ 00823 M01S00001.fsesc25 +++| VTYCUR EQ TITLEROW[CURSPLIT]+NUMROWS[CURSPLIT] AND 00824 M01S00002.fsesc25 +++| NOT PROMPTING THEN 00825 M00S00789.fsescrn +++| BEGIN # IF AUTO HALF PAGE FORWARD # 00826 M00S00790.fsescrn +++| TOPS(CURSPLIT)=BOTS(CURSPLIT)-NUMROWS[CURSPLIT]/2; 00827 M00S00791.fsescrn +++| SETTOPS(CURSPLIT); 00828 M00S00792.fsescrn +++| XCURSOR=0; 00829 M00S00793.fsescrn +++| YCURSOR=BOTS(CURSPLIT); 00830 M00S00794.fsescrn +++| YCURSOR=LTOY(YCURSOR,CURSPLIT); 00831 M00S00795.fsescrn +++| SETBOTS(CURSPLIT); 00832 M00S00796.fsescrn +++| PAINTSPLIT; 00833 M00S00797.fsescrn +++| END 00834 M00S00798.fsescrn +++| ALIGN; 00835 M00S00799.fsescrn +++| END 00836 M00S00800.fsescrn +++| HARDFN = FALSE; # CLEAR HARD FUNCTION PRESSED # 00837 M00S00801.fsescrn +++| VDTDRN; # ASSURE CLEAN INPUT BUFFER # 00838 M00S00802.fsescrn +++| IF FIRSTEVENT THEN CMDLINE[0]=NULLIN; 00839 M00S00803.fsescrn +++| IF AUTOINDENT THEN 00840 M00S00804.fsescrn +++| BEGIN # IF SET JUMP ENABLED # 00841 M00S00805.fsescrn +++| IF XCURSOR EQ 0 AND YCURSOR NQ COMMANDROW 00842 M00S00806.fsescrn +++| AND LENGTH(CMDLIN) EQ 0 THEN 00843 M00S00807.fsescrn +++| BEGIN # IF REASONABLE TO DO # 00844 M00S00808.fsescrn +++| SCRNPT3 = 0; 00845 M00S00809.fsescrn +++| SCRNPT4 = 0;
Line S00810 Modification History | |
---|---|
M01 (Removed by) | fsesc21 |
Seq # *Modification Id* Act ----------------------------+ 00846 M01S00810.fsesc21 ---| IF LENGTH(LIN) EQ 0 THEN
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc21 |
Seq # *Modification Id* Act ----------------------------+ 00847 M01S00001.fsesc21 +++| IF NOTEXT THEN 00848 M00S00811.fsescrn +++| BEGIN # IF CURRENT LINE IS EMPTY # 00849 M00S00812.fsescrn +++| SCRNPT4 = 1; # CHECK PREVIOUS LINE # 00850 M00S00813.fsescrn +++| BAKZ; 00851 M00S00814.fsescrn +++| END
Line S00815 Modification History | |
---|---|
M01 (Removed by) | fsesc21 |
Seq # *Modification Id* Act ----------------------------+ 00852 M01S00815.fsesc21 ---| GETCHAR(LINE,XSHIFT[CURSPLIT],SCRNPT2); 00853 M01S00816.fsesc21 ---| WHYLE SCRNPT2 EQ CBLANK DO 00854 M01S00817.fsesc21 ---| BEGIN # COUNT LEADING BLANKS # 00855 M01S00818.fsesc21 ---| SCRNPT3 = SCRNPT3 + 1; 00856 M01S00819.fsesc21 ---| GETCHAR(LINE,XSHIFT[CURSPLIT]+SCRNPT3,SCRNPT2); 00857 M01S00820.fsesc21 ---| END
Line S00002 Modification History | |
---|---|
M01 (Added by) | fsesc21 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00821.fsescrn +++| IF SCRNPT4 EQ 1 THEN FWDZ; # RESET IF NECESSARY # 00868 M00S00822.fsescrn +++| XCURSOR = SCRNPT3; 00869 M00S00823.fsescrn +++| END 00870 M00S00824.fsescrn +++| END 00871 M00S00825.fsescrn +++| IORET 00872 M00S00826.fsescrn +++| 00873 M00S00827.fsescrn +++|DSHOME: 00874 M00S00828.fsescrn +++| XCURSOR=VTOXPOS; 00875 M00S00829.fsescrn +++| YCURSOR=VTOYPOS; 00876 M00S00830.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TEXT" OR ROWTYPE[YCURSOR] 00877 M00S00831.fsescrn +++| EQ ROWST"TITLE" THEN CURSPLIT=ROWSPLIT[YCURSOR]; 00878 M00S00832.fsescrn +++| CURCURSOR=XCURSOR+XSHIFT[CURSPLIT]; 00879 M00S00833.fsescrn +++| ALIGN; 00880 M00S00834.fsescrn +++| GOTO DSLOOP; 00881 M00S00835.fsescrn +++| 00882 M00S00836.fsescrn +++|DSCLREOL: 00883 M00S00837.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"COMMAND" THEN 00884 M00S00838.fsescrn +++| BEGIN 00885 M00S00839.fsescrn +++| SETCHAR(CMDLINE,XCURSOR,CENDLINE); 00886 M00S00840.fsescrn +++| IF XCURSOR EQ 0 THEN ROWPAINT[COMMANDROW] = FALSE; 00887 M00S00841.fsescrn +++| END 00888 M00S00842.fsescrn +++| ELSE IF ALIGNGOOD THEN 00889 M00S00843.fsescrn +++| BEGIN 00890 M00S00844.fsescrn +++| FOR SCRNPT1=XCURSOR+XSHIFT[CURSPLIT] STEP 1 00891 M00S00845.fsescrn +++| UNTIL EDITFIELD-1 DO SETCHAR(LINE,SCRNPT1,CBLANK); 00892 M00S00846.fsescrn +++| SETCHAR(LINE,BUFCHAR,CENDLINE); 00893 M00S00847.fsescrn +++| TRIMPAD; 00894 M00S00848.fsescrn +++| LINECHANGED=TRUE; 00895 M00S00849.fsescrn +++| END 00896 M00S00850.fsescrn +++| ELSE REJECT; 00897 M00S00851.fsescrn +++| GOTO DSX0Y1; 00898 M00S00852.fsescrn +++| 00899 M00S00853.fsescrn +++|DSCLRPAG: DSCLRUNP: DSCLREOP: 00900 M00S00854.fsescrn +++| PAINTALL; 00901 M00S00855.fsescrn +++| SETCMD("SETSCR"); 00902 M00S00856.fsescrn +++| GOTO DSLOOP; 00903 M00S00857.fsescrn +++| 00904 M00S00858.fsescrn +++|DSCHAR: 00905 M00S00859.fsescrn +++| IF YCURSOR EQ COMMANDROW THEN 00906 M00S00860.fsescrn +++| BEGIN 00907 M00S00861.fsescrn +++| MOVETEXT(CMDLIN,0,BUFCM1); 00908 M00S00862.fsescrn +++| ROWPAINT[COMMANDROW] = TRUE; 00909 M00S00863.fsescrn +++| END 00910 M00S00864.fsescrn +++| ELSE 00911 M00S00865.fsescrn +++| BEGIN 00912 M00S00866.fsescrn +++| EXTEND; 00913 M00S00867.fsescrn +++| IF ALIGNGOOD THEN 00914 M00S00868.fsescrn +++| BEGIN 00915 M00S00869.fsescrn +++| SCRNPT1=LENGTH(LIN); 00916 M00S00870.fsescrn +++| MOVETEXT(LIN,XSHIFT[CURSPLIT],EDITFIELD); 00917 M00S00871.fsescrn +++| LINECHANGED=TRUE; 00918 M00S00872.fsescrn +++| END 00919 M00S00873.fsescrn +++| ELSE REJECT; 00920 M00S00874.fsescrn +++| END 00921 M00S00875.fsescrn +++| GOTO DSX0Y1; 00922 M00S00876.fsescrn +++| 00923 M00S00877.fsescrn +++|DSINSC: 00924 M00S00878.fsescrn +++| IF YCURSOR EQ COMMANDROW THEN 00925 M00S00879.fsescrn +++| BEGIN # IF COMMANDROW # 00926 M00S00880.fsescrn +++| ROWPAINT[COMMANDROW] = TRUE; 00927 M00S00881.fsescrn +++| INSTEXT(CMDLIN,0,BUFCM1); 00928 M00S00882.fsescrn +++| END 00929 M00S00883.fsescrn +++| ELSE 00930 M00S00884.fsescrn +++| BEGIN 00931 M00S00885.fsescrn +++| EXTEND; 00932 M00S00886.fsescrn +++| IF ALIGNGOOD THEN 00933 M00S00887.fsescrn +++| BEGIN 00934 M00S00888.fsescrn +++| INSTEXT(LIN,XSHIFT[CURSPLIT],EDITFIELD);
Line S00889 Modification History | |
---|---|
M01 (Removed by) | fsesc23 |
Seq # *Modification Id* Act ----------------------------+ 00935 M01S00889.fsesc23 ---| IF CURRENT EQ REGLINE[MARKREG] AND MRKCHAR[0] GR -1 THEN 00936 M01S00890.fsesc23 ---| BEGIN 00937 M01S00891.fsesc23 ---| IF VTXCUR LS MRKCHAR[0] THEN 00938 M01S00892.fsesc23 ---| BEGIN 00939 M01S00893.fsesc23 ---| MRKCHAR[0] = MRKCHAR[0] + 1; 00940 M01S00894.fsesc23 ---| END 00941 M01S00895.fsesc23 ---| IF CURRENT EQ REGLINE[MARKREG+1] AND VTXCUR LQ MRKCHAR[1] THEN 00942 M01S00896.fsesc23 ---| MRKCHAR[1] = MRKCHAR[1] + 1; 00943 M01S00897.fsesc23 ---| END
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc23 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00898.fsescrn +++| LINECHANGED=TRUE; 00949 M00S00899.fsescrn +++| END 00950 M00S00900.fsescrn +++| ELSE REJECT; 00951 M00S00901.fsescrn +++| END 00952 M00S00902.fsescrn +++| GOTO DSX0Y1; 00953 M00S00903.fsescrn +++| 00954 M00S00904.fsescrn +++|DSDELC: 00955 M00S00905.fsescrn +++| IF YCURSOR EQ COMMANDROW THEN 00956 M00S00906.fsescrn +++| BEGIN 00957 M00S00907.fsescrn +++| DELTEXT(CMDLIN,0,BUFCM1); 00958 M00S00908.fsescrn +++| IF LENGTH(CMDLIN) EQ 0 THEN ROWPAINT[COMMANDROW] = FALSE; 00959 M00S00909.fsescrn +++| END 00960 M00S00910.fsescrn +++| ELSE IF ALIGNGOOD THEN 00961 M00S00911.fsescrn +++| BEGIN 00962 M00S00912.fsescrn +++| IF HARDFN AND LENGTH(LIN) GR XSHIFT[CURSPLIT]+USRNUMCOL 00963 M00S00913.fsescrn +++| THEN ROWPAINT[YCURSOR]=TRUE; 00964 M00S00914.fsescrn +++| DELTEXT(LIN,XSHIFT[CURSPLIT],EDITFIELD);
Line S00915 Modification History | |
---|---|
M01 (Removed by) | fsesc23 |
Seq # *Modification Id* Act ----------------------------+ 00965 M01S00915.fsesc23 ---| IF CURRENT EQ REGLINE[MARKREG] AND MRKCHAR[0] GR -1 THEN 00966 M01S00916.fsesc23 ---| BEGIN 00967 M01S00917.fsesc23 ---| IF VTXCUR LS MRKCHAR[0] THEN 00968 M01S00918.fsesc23 ---| BEGIN 00969 M01S00919.fsesc23 ---| MRKCHAR[0] = MRKCHAR[0] - 1; 00970 M01S00920.fsesc23 ---| END 00971 M01S00921.fsesc23 ---| IF CURRENT EQ REGLINE[MARKREG+1] AND VTXCUR LQ MRKCHAR[1] THEN 00972 M01S00922.fsesc23 ---| MRKCHAR[1] = MRKCHAR[1] - 1;
Line S00005 Modification History | |
---|---|
M01 (Added by) | fsesc23 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00923.fsescrn +++| END 00991 M00S00924.fsescrn +++| LINECHANGED=TRUE; 00992 M00S00925.fsescrn +++| END 00993 M00S00926.fsescrn +++| ELSE REJECT; 00994 M00S00927.fsescrn +++| GOTO DSX0Y1; 00995 M00S00928.fsescrn +++| 00996 M00S00929.fsescrn +++|DSINSL:
Line S00930 Modification History | |
---|---|
M01 (Removed by) | fsesc31 |
Seq # *Modification Id* Act ----------------------------+ 00997 M01S00930.fsesc31 ---| IF YTOL(YCURSOR,CURSPLIT) EQ BOTF(CURFILE) THEN EXTEND; 00998 M01S00931.fsesc31 ---| ELSE
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc31 |
Seq # *Modification Id* Act ----------------------------+ 00999 M01S00001.fsesc31 +++| EXTEND; 01000 M01S00002.fsesc31 +++| IF ALIGNGOOD THEN 01001 M00S00932.fsescrn +++| BEGIN
Line S00933 Modification History | |
---|---|
M01 (Removed by) | fsesc31 |
Seq # *Modification Id* Act ----------------------------+ 01002 M01S00933.fsesc31 ---| EXTEND; 01003 M01S00934.fsesc31 ---| IF ALIGNGOOD THEN 01004 M01S00935.fsesc31 ---| BEGIN 01005 M01S00936.fsesc31 ---| IF CURRENT NQ TOPS(CURSPLIT) THEN BAKZ; 01006 M01S00937.fsesc31 ---| LINE[0]=NULLIN; 01007 M01S00938.fsesc31 ---| INSX; 01008 M01S00939.fsesc31 ---| END 01009 M01S00940.fsesc31 ---| ELSE 01010 M01S00941.fsesc31 ---| BEGIN 01011 M01S00942.fsesc31 ---| REJECT; 01012 M01S00943.fsesc31 ---| IF HARDFN THEN PAINTREST(YCURSOR); 01013 M01S00944.fsesc31 ---| END
Line S00003 Modification History | |
---|---|
M01 (Added by) | fsesc31 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00945.fsescrn +++| END 01024 M00S00946.fsescrn +++| GOTO DSX0Y1; 01025 M00S00947.fsescrn +++|
Line S00019 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00948.fsescrn +++|DSFTAB:
Line S00949 Modification History | |
---|---|
M01 (Removed by) | fsesc19 |
Seq # *Modification Id* Act ----------------------------+ 01109 M01S00949.fsesc19 ---| SCRNPT2=TABFN(1);
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc19 |
Seq # *Modification Id* Act ----------------------------+ 01110 M01S00001.fsesc19 +++| SCRNPT4 = TABFN(1); 01111 M00S00950.fsescrn +++| FOR SCRNPT3=1 STEP 1 UNTIL USERTABS DO 01112 M00S00951.fsescrn +++| BEGIN
Line S00952 Modification History | |
---|---|
M01 (Removed by) | fsesc19 |
Seq # *Modification Id* Act ----------------------------+ 01113 M01S00952.fsesc19 ---| IF TABFN(SCRNPT3) LS SCRNPT2 THEN
Line S00002 Modification History | |
---|---|
M01 (Added by) | fsesc19 |
Seq # *Modification Id* Act ----------------------------+ 01114 M01S00002.fsesc19 +++| SCRNPT2 = TABFN(SCRNPT3); 01115 M01S00003.fsesc19 +++| IF SCRNPT2 LS SCRNPT4 OR SCRNPT2 GR VTXMAX THEN 01116 M00S00953.fsescrn +++| BEGIN # WRAPAROUND # 01117 M00S00954.fsescrn +++| GOTO DSFTAB2; 01118 M00S00955.fsescrn +++| END
Line S00956 Modification History | |
---|---|
M01 (Removed by) | fsesc19 |
Seq # *Modification Id* Act ----------------------------+ 01119 M01S00956.fsesc19 ---| SCRNPT2=TABFN(SCRNPT3); 01120 M00S00957.fsescrn +++| IF SCRNPT2 GR VTXCUR THEN 01121 M00S00958.fsescrn +++| BEGIN # THIS IS IT #
Line S00959 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 01122 M01S00959.ns2641 ---| VDTCOR(VTYCUR,SCRNPT2); 01123 M01S00960.ns2641 ---| GOTO DSLOOP;
Line S00101 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 01124 M01S00101.ns2641 +++| SCRNPT4 = VTYCUR; 01125 M01S00102.ns2641 +++| GOTO DSFTAB3; 01126 M00S00961.fsescrn +++| END 01127 M00S00962.fsescrn +++| END 01128 M00S00963.fsescrn +++|DSFTAB2:
Line S00964 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 01129 M01S00964.ns2641 ---| IF NOT TABUNDWFLN[0] THEN 01130 M01S00965.ns2641 ---| BEGIN # IF FORWARD TABS WRAP LINES # 01131 M01S00966.ns2641 ---| SCRNPT4 = VTYCUR + 1; 01132 M01S00967.ns2641 ---| IF SCRNPT4 GR VTYMAX THEN SCRNPT4 = 0; 01133 M01S00968.ns2641 ---| VDTCOR(SCRNPT4,0); 01134 M01S00969.ns2641 ---| END
Line S00103 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00970.fsescrn +++| GOTO DSLOOP; 01162 M00S00971.fsescrn +++| 01163 M00S00972.fsescrn +++|DSBTAB: 01164 M00S00973.fsescrn +++| IF TABUNDWBLN[0] AND VTXCUR EQ 0 THEN GOTO DSLOOP; # IF NO WRAP # 01165 M00S00974.fsescrn +++| SCRNPT1=-1; 01166 M00S00975.fsescrn +++| SCRNPT2=TABFN(TABSTOPS); 01167 M00S00976.fsescrn +++| FOR SCRNPT3=USERTABS STEP -1 UNTIL 1 DO 01168 M00S00977.fsescrn +++| BEGIN
Line S00978 Modification History | |
---|---|
M01 (Removed by) | fsesc19 |
Seq # *Modification Id* Act ----------------------------+ 01169 M01S00978.fsesc19 ---| IF TABFN(SCRNPT3) GR SCRNPT2 AND SCRNPT1 LS 0 THEN 01170 M01S00979.fsesc19 ---| BEGIN # ENABLE # 01171 M01S00980.fsesc19 ---| SCRNPT1=TABFN(SCRNPT3); 01172 M01S00981.fsesc19 ---| END 01173 M01S00982.fsesc19 ---| SCRNPT2=TABFN(SCRNPT3); 01174 M01S00983.fsesc19 ---| IF SCRNPT2 LS VTXCUR AND SCRNPT1 GQ 0 THEN 01175 M01S00984.fsesc19 ---| BEGIN # THIS IS IT # 01176 M01S00985.fsesc19 ---| VDTCOR(VTYCUR,SCRNPT2); 01177 M01S00986.fsesc19 ---| GOTO DSLOOP;
Line S00004 Modification History | |
---|---|
M01 (Added by) | fsesc19 |
Seq # *Modification Id* Act ----------------------------+ 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 #
Line S00129 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 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
Line S00012 Modification History | |
---|---|
M01 (Added by) | fsesc19 |
Seq # *Modification Id* Act ----------------------------+ 01195 M01S00012.fsesc19 +++| VDTCOR(VTYCUR,SCRNPT4); 01196 M01S00013.fsesc19 +++| GOTO DSLOOP; 01197 M00S00987.fsescrn +++| END 01198 M00S00988.fsescrn +++| END
Line S00989 Modification History | |
---|---|
M01 (Removed by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 01199 M01S00989.ns2641 ---| IF VTXCUR GR 0 THEN
Line S00138 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 01200 M01S00138.ns2641 +++| IF VTXCUR GR 0 01201 M01S00139.ns2641 +++| AND NOT (TABVTPROTM[0] AND ROWTYPE[VTYCUR] EQ ROWST"LABEL") THEN 01202 M00S00990.fsescrn +++| BEGIN 01203 M00S00991.fsescrn +++| VDTCOR(VTYCUR,0); 01204 M00S00992.fsescrn +++| GOTO DSLOOP; 01205 M00S00993.fsescrn +++| END
Line S00140 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 01206 M01S00140.ns2641 +++|DSBTAB2: 01207 M00S00994.fsescrn +++| SCRNPT1=MAX(SCRNPT1,0); 01208 M00S00995.fsescrn +++| SCRNPT4=VTYCUR-1; 01209 M00S00996.fsescrn +++| IF SCRNPT4 LS 0 THEN SCRNPT4=VTYMAX;
Line S00141 Modification History | |
---|---|
M01 (Added by) | ns2641 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S00997.fsescrn +++| VDTCOR(SCRNPT4,SCRNPT1); 01222 M00S00998.fsescrn +++| GOTO DSLOOP; 01223 M00S00999.fsescrn +++| 01224 M00S01000.fsescrn +++|DSDELL: 01225 M00S01001.fsescrn +++| IF ALIGNGOOD THEN 01226 M00S01002.fsescrn +++| BEGIN 01227 M00S01003.fsescrn +++| IF CURRENT LS BOTS(CURSPLIT) THEN DELX; 01228 M00S01004.fsescrn +++| END 01229 M00S01005.fsescrn +++| ELSE 01230 M00S01006.fsescrn +++| BEGIN 01231 M00S01007.fsescrn +++| REJECT; 01232 M00S01008.fsescrn +++| IF HARDFN AND NOT TABVTPROTM[0] THEN PAINTREST(YCURSOR);
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc20 |
Seq # *Modification Id* Act ----------------------------+ 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 M00S01009.fsescrn +++| END 01238 M00S01010.fsescrn +++| LINECHANGED=FALSE; 01239 M00S01011.fsescrn +++| GOTO DSX0Y1; 01240 M00S01012.fsescrn +++| 01241 M00S01013.fsescrn +++|DSGENERIC: 01242 M00S01014.fsescrn +++| IF FIRSTEVENT THEN CMDLINE[0]=NULLIN; 01243 M00S01015.fsescrn +++| IF ABS(VTCHAR) EQ GENERICST"GHELP" THEN SETCMD("HELP"); 01244 M00S01016.fsescrn +++| ELSE IF ABS(VTCHAR) EQ GENERICST"GBACK" THEN SETCMD("BACK"); 01245 M00S01017.fsescrn +++| ELSE IF ABS(VTCHAR) EQ GENERICST"GDATA" THEN SETCMD("DATA"); 01246 M00S01018.fsescrn +++| ELSE IF ABS(VTCHAR) EQ GENERICST"GEDIT" THEN SETCMD("EDIT"); 01247 M00S01019.fsescrn +++| ELSE IF ABS(VTCHAR) EQ GENERICST"GSTOP" THEN 01248 M00S01020.fsescrn +++| BEGIN 01249 M00S01021.fsescrn +++| SETCMD("SETSCR"); 01250 M00S01022.fsescrn +++| IF NOT PROMPTING THEN SETCMD("SETLIN"); 01251 M00S01023.fsescrn +++| END 01252 M00S01024.fsescrn +++| ELSE IF VTCHAR EQ GENERICST"GFWD" THEN SETCMD("VNS"); 01253 M00S01025.fsescrn +++| ELSE IF VTCHAR EQ GENERICST"GBKW" THEN SETCMD("VPS"); 01254 M00S01026.fsescrn +++| ELSE IF -VTCHAR EQ GENERICST"GFWD" THEN SETCMD("VL"); 01255 M00S01027.fsescrn +++| ELSE IF -VTCHAR EQ GENERICST"GBKW" THEN SETCMD("PF"); 01256 M00S01028.fsescrn +++| ELSE IF VTCHAR EQ GENERICST"GUP" THEN SETCMD("VN"); 01257 M00S01029.fsescrn +++| ELSE IF VTCHAR EQ GENERICST"GDOWN" THEN SETCMD("VP"); 01258 M00S01030.fsescrn +++| ELSE IF TABCURADDT[0] EQ 2 AND 01259 M00S01031.fsescrn +++| TABVTFKLSM[0] NQ 0 AND 01260 M00S01032.fsescrn +++| VTCHAR EQ GENERICST"GPOS" THEN 01261 M00S01033.fsescrn +++| ROWPAINT[YCURSOR] = TRUE; # 721 FULL DUPLEX TOUCH PANEL # 01262 M00S01034.fsescrn +++| ELSE GOTO DSLOOP; 01263 M00S01035.fsescrn +++| GOTO DSFKEY2; 01264 M00S01036.fsescrn +++| 01265 M00S01037.fsescrn +++|DSFKEY: 01266 M00S01038.fsescrn +++| IF FIRSTEVENT THEN CMDLINE[0]=NULLIN; 01267 M00S01039.fsescrn +++| IF ABS(VTCHAR) GR POSFKEYS OR VTCHAR EQ 0 01268 M00S01040.fsescrn +++| THEN DSERRJMP("UNSUPPORTED FUNCTION KEY$"); 01269 M00S01041.fsescrn +++| P<KEYLIN>=LOC(FKEYSTRING[VTCHAR]); 01270 M00S01042.fsescrn +++| SCRNPT2=LENGTH(KEYLIN); 01271 M00S01043.fsescrn +++| IF SCRNPT2 GQ 15 THEN 01272 M00S01044.fsescrn +++| BEGIN 01273 M00S01045.fsescrn +++| PUSH; 01274 M00S01046.fsescrn +++| POSZ(TOPK(FKEYS)+VTCHAR+POSFKEYS); 01275 M00S01047.fsescrn +++| P<KEYLIN>=LOC(LIN); 01276 M00S01048.fsescrn +++| ADDTOCMD; 01277 M00S01049.fsescrn +++| POP; 01278 M00S01050.fsescrn +++| END 01279 M00S01051.fsescrn +++| ELSE ADDTOCMD; 01280 M00S01052.fsescrn +++|DSFKEY2: 01281 M00S01053.fsescrn +++| HARDFN=FALSE; 01282 M00S01054.fsescrn +++| IF TABVTFKLSM[0] NQ 0 THEN ROWPAINT[YCURSOR] = TRUE; 01283 M00S01055.fsescrn +++| IF PROMPTING THEN # SIGNAL OVERRIDE OF SECONDARY # 01284 M00S01056.fsescrn +++| BEGIN 01285 M00S01057.fsescrn +++| HALT("DIRECTIVE CANCELLED BY FUNCTION KEY$"); 01286 M00S01058.fsescrn +++| ESCAPE=TRUE; 01287 M00S01059.fsescrn +++| END 01288 M00S01060.fsescrn +++| GOTO DSLOOP; 01289 M00S01061.fsescrn +++| 01290 M00S01062.fsescrn +++|DSERAC: 01291 M00S01063.fsescrn +++| VTCHAR=X"20"; # BLANK # 01292 M00S01064.fsescrn +++| VTORDN=SCREENST"CHAR"; 01293 M00S01065.fsescrn +++| GOTO DSCHAR; 01294 M00S01066.fsescrn +++| 01295 M00S01067.fsescrn +++|DSERAL: 01296 M00S01068.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"COMMAND" THEN 01297 M00S01069.fsescrn +++| BEGIN 01298 M00S01070.fsescrn +++| SETCHAR(CMDLINE,0,CENDLINE); 01299 M00S01071.fsescrn +++| ROWPAINT[COMMANDROW] = FALSE; 01300 M00S01072.fsescrn +++| END 01301 M00S01073.fsescrn +++| ELSE IF ALIGNGOOD THEN 01302 M00S01074.fsescrn +++| BEGIN 01303 M00S01075.fsescrn +++| FOR SCRNPT1=XSHIFT[CURSPLIT] STEP 1 01304 M00S01076.fsescrn +++| UNTIL EDITFIELD-1 DO SETCHAR(LINE,SCRNPT1,CBLANK); 01305 M00S01077.fsescrn +++| SETCHAR(LINE,BUFCHAR,CENDLINE); 01306 M00S01078.fsescrn +++| TRIMPAD; 01307 M00S01079.fsescrn +++| LINECHANGED=TRUE; 01308 M00S01080.fsescrn +++| END 01309 M00S01081.fsescrn +++| ELSE REJECT; 01310 M00S01082.fsescrn +++| GOTO DSX0Y1; 01311 M00S01083.fsescrn +++| 01312 M00S01084.fsescrn +++|DSFIELD: 01313 M00S01085.fsescrn +++| IF YCURSOR EQ COMMANDROW THEN 01314 M00S01086.fsescrn +++| BEGIN 01315 M00S01087.fsescrn +++| VDTIINP; # GET FIRST CHARACTER OF FIELD # 01316 M00S01088.fsescrn +++| FOR SCRNPT1 = 0 STEP 1 WHILE VTORDN EQ SCREENST"CHAR" DO 01317 M00S01089.fsescrn +++| BEGIN 01318 M00S01090.fsescrn +++| MOVETEXT(CMDLIN,SCRNPT1,BUFCM1); 01319 M00S01091.fsescrn +++| VDTIINP; # GET NEXT CHARACTER OF FIELD # 01320 M00S01092.fsescrn +++| END 01321 M00S01093.fsescrn +++| SETCHAR(CMDLINE,SCRNPT1,CENDLINE); 01322 M00S01094.fsescrn +++| ROWPAINT[COMMANDROW] = TRUE; 01323 M00S01095.fsescrn +++| END 01324 M00S01096.fsescrn +++| ELSE 01325 M00S01097.fsescrn +++| BEGIN 01326 M00S01098.fsescrn +++| EXTEND; 01327 M00S01099.fsescrn +++| IF ALIGNGOOD THEN 01328 M00S01100.fsescrn +++| BEGIN # IF ALIGN IS O.K. # 01329 M00S01101.fsescrn +++| SCRNPT2 = LENGTH(LIN); # SAVE CURRENT LINE LENGTH # 01330 M00S01102.fsescrn +++| VDTIINP; # GET FIRST CHARACTER OF FIELD # 01331 M00S01103.fsescrn +++| FOR XCURSOR = 0 STEP 1 WHILE VTORDN EQ SCREENST"CHAR" DO 01332 M00S01104.fsescrn +++| BEGIN 01333 M00S01105.fsescrn +++| IF XCURSOR + XSHIFT[CURSPLIT] LS EDITFIELD THEN 01334 M00S01106.fsescrn +++| BEGIN # IF WITHIN EDITING WINDOW # 01335 M00S01107.fsescrn +++| SCRNPT1 = XLTXPINT[VTCHAR]; 01336 M00S01108.fsescrn +++| IF ASCII[CURFILE] LQ 1 THEN 01337 M00S01109.fsescrn +++| BEGIN # IF SUPPRESSING LOWER CASE # 01338 M00S01110.fsescrn +++| # CODE IS DEPENDENT ON PRECISE VALUES OF INTERNAL CHARSET # 01339 M00S01111.fsescrn +++| CONTROL IFNQ CLEFTCURL,O"133"; DEFERROR; CONTROL FI; 01340 M00S01112.fsescrn +++| CONTROL IFNQ CVERTICAL,O"134"; DEFERROR; CONTROL FI; 01341 M00S01113.fsescrn +++| CONTROL IFNQ CRITECURL,O"135"; DEFERROR; CONTROL FI; 01342 M00S01114.fsescrn +++| CONTROL IFNQ CTILDE,O"136"; DEFERROR; CONTROL FI; 01343 M00S01115.fsescrn +++| CONTROL IFNQ CGRAVE,O"100"; DEFERROR; CONTROL FI; 01344 M00S01116.fsescrn +++| CONTROL IFNQ CCOLON,O"000"; DEFERROR; CONTROL FI; 01345 M00S01117.fsescrn +++| # REPAINT IF NON-EXISTENT DISPLAY CODE CHARACTER # 01346 M00S01118.fsescrn +++| IF (SCRNPT1 GQ O"133" AND SCRNPT1 LQ O"136") 01347 M00S01119.fsescrn +++| OR (SCRNPT1 EQ O"100") THEN ROWPAINT[YCURSOR] = TRUE; 01348 M00S01120.fsescrn +++| IF (B<00,01>MEM[CSMR] EQ 0) 01349 M00S01121.fsescrn +++| AND (SCRNPT1 EQ O"000") THEN ROWPAINT[YCURSOR]=TRUE; 01350 M00S01122.fsescrn +++| DSPLCOD(SCRNPT1); # SUPRESS LOWER CASE # 01351 M00S01123.fsescrn +++| END 01352 M00S01124.fsescrn +++| SETCHAR(LINE,XCURSOR+XSHIFT[CURSPLIT],SCRNPT1); 01353 M00S01125.fsescrn +++| IF SCRNPT1 EQ TABCHAR THEN 01354 M00S01126.fsescrn +++| BEGIN # IF SOFT TAB # 01355 M00S01127.fsescrn +++| SOFTTAB = TRUE; 01356 M00S01128.fsescrn +++| ROWPAINT[YCURSOR] = TRUE; 01357 M00S01129.fsescrn +++| END 01358 M00S01130.fsescrn +++| END 01359 M00S01131.fsescrn +++| VDTIINP; # GET NEXT CHARACTER OF FIELD # 01360 M00S01132.fsescrn +++| END 01361 M00S01133.fsescrn +++|# 01362 M00S01134.fsescrn +++| PERFORM NECESSARY PADDING AND SET END OF LINE. 01363 M00S01135.fsescrn +++|# 01364 M00S01136.fsescrn +++| SCRNPT1 = XSHIFT[CURSPLIT] + XCURSOR; 01365 M00S01137.fsescrn +++| IF SCRNPT1 LS SCRNPT2 THEN 01366 M00S01138.fsescrn +++| BEGIN # IF LINE WAS SHORTENED # 01367 M00S01139.fsescrn +++| FOR SCRNPT3 = SCRNPT1 STEP 1 UNTIL 01368 M00S01140.fsescrn +++| MIN(SCRNPT2-1,MIN(EDITFIELD-1,XSHIFT[CURSPLIT]+USRNUMCOL)) DO 01369 M00S01141.fsescrn +++| BEGIN 01370 M00S01142.fsescrn +++| SETCHAR(LINE,SCRNPT3,CBLANK); 01371 M00S01143.fsescrn +++| END 01372 M00S01144.fsescrn +++| TRIMPAD; 01373 M00S01145.fsescrn +++| END 01374 M00S01146.fsescrn +++| ELSE 01375 M00S01147.fsescrn +++| BEGIN # LINE NOT SHORTENED # 01376 M00S01148.fsescrn +++| IF SCRNPT2 LS XSHIFT[CURSPLIT] THEN 01377 M00S01149.fsescrn +++| BEGIN # IF LINE LENGTHENED # 01378 M00S01150.fsescrn +++| IF EDITFIELD GQ XSHIFT[CURSPLIT] THEN 01379 M00S01151.fsescrn +++| BEGIN # IF WITHIN EDITING WINDOW # 01380 M00S01152.fsescrn +++| FOR SCRNPT3 = SCRNPT2 STEP 1 UNTIL XSHIFT[CURSPLIT] - 1 DO 01381 M00S01153.fsescrn +++| SETCHAR(LINE,SCRNPT3,CBLANK); 01382 M00S01154.fsescrn +++| SETCHAR(LINE,MIN(SCRNPT1,EDITFIELD),CENDLINE); 01383 M00S01155.fsescrn +++| END 01384 M00S01156.fsescrn +++| END 01385 M00S01157.fsescrn +++| ELSE 01386 M00S01158.fsescrn +++| BEGIN # NO CHANGE IN LINE LENGTH # 01387 M00S01159.fsescrn +++| SETCHAR(LINE,MIN(SCRNPT1,MAX(SCRNPT2,EDITFIELD)),CENDLINE); 01388 M00S01160.fsescrn +++| END 01389 M00S01161.fsescrn +++| END 01390 M00S01162.fsescrn +++| LINECHANGED = TRUE; # TEXT OF LINE ALTERED # 01391 M00S01163.fsescrn +++| END 01392 M00S01164.fsescrn +++| ELSE 01393 M00S01165.fsescrn +++| BEGIN # ALIGN BAD # 01394 M00S01166.fsescrn +++| REJECT; # REJECT CHANGE # 01395 M00S01167.fsescrn +++| END 01396 M00S01168.fsescrn +++| END 01397 M00S01169.fsescrn +++| GOTO DSLOOP3; # CONTINUE WITH INPUT # 01398 M00S01170.fsescrn +++| 01399 M00S01171.fsescrn +++| 01400 M00S01172.fsescrn +++|DSBAD: 01401 M00S01173.fsescrn +++| ERRSTRING = "UNKNOWN CONTROL KEY, CHECK SCREEN$"; 01402 M00S01174.fsescrn +++| ROWPAINT[VTYCUR] = TRUE; # SIGNAL REPAINT OF LINE # 01403 M00S01175.fsescrn +++| GOTO DSLOOP; 01404 M00S01176.fsescrn +++| 01405 M00S01177.fsescrn +++| IOEND # DOSCREEN # 01406 M00S01178.fsescrn +++|PAGE # SCREEN OUTPUT/CONTROL # 01407 M00S01179.fsescrn +++| 01408 M00S01180.fsescrn +++| 01409 M00S01181.fsescrn +++|PROC PAINTMARKS(MARKTYPE); 01410 M00S01182.fsescrn +++| BEGIN 01411 M00S01183.fsescrn +++|# 01412 M00S01184.fsescrn +++|** PAINTMARKS - SET SCREEN PAINT BITS FOR MARKS. 01413 M00S01185.fsescrn +++|* 01414 M00S01186.fsescrn +++|* ENTRY MARKTYPE - 1=FORCE HIGHLIGHTING ON. 01415 M00S01187.fsescrn +++|* 2=MAINTAIN EXISTING HIGHLIGHTS. 01416 M00S01188.fsescrn +++|* 3=FORCE HIGHLIGHTING OFF. 01417 M00S01189.fsescrn +++|* TOPS(BOTH), BOTS(BOTH) - SETUP. 01418 M00S01190.fsescrn +++|* REGLINE[MARKREG AND MARKREG+1] - ALREADY SET. 01419 M00S01191.fsescrn +++|* SPLITFILE[2] - WHETHER TWO SPLITS ARE ON SCREEN. 01420 M00S01192.fsescrn +++|* 01421 M00S01193.fsescrn +++|* EXIT ROWPMARK[ALL] - FORCED ON OR OFF BY REGIONS. 01422 M00S01194.fsescrn +++|* ROWPAINT[ANY] - FORCED TRUE AS NEEDED. 01423 M00S01195.fsescrn +++|* 01424 M00S01196.fsescrn +++|* CALLS DOMARK (INTERNAL). 01425 M00S01197.fsescrn +++|# 01426 M00S01198.fsescrn +++| ITEM MARKTYPE; 01427 M00S01199.fsescrn +++| 01428 M00S01200.fsescrn +++| PROC DOMARK(SPLT); 01429 M00S01201.fsescrn +++| BEGIN 01430 M00S01202.fsescrn +++|# 01431 M00S01203.fsescrn +++|** DOMARK - WORKING PORTION OF PAINTMARKS. 01432 M00S01204.fsescrn +++|* 01433 M00S01205.fsescrn +++|* NOTE REFER TO PAINTMARKS HEADER. 01434 M00S01206.fsescrn +++|# 01435 M00S01207.fsescrn +++| ITEM L1, L2, SPLT; 01436 M00S01208.fsescrn +++| FOR L1=TOPS(SPLT)+1 STEP 1 UNTIL BOTS(SPLT)-1 DO 01437 M00S01209.fsescrn +++| BEGIN 01438 M00S01210.fsescrn +++| L2=LTOY(L1,SPLT); 01439 M00S01211.fsescrn +++| ROWPMARK[L2]=FALSE; 01440 M00S01212.fsescrn +++| IF L1 GQ REGLINE[MARKREG] AND L1 LQ REGLINE[MARKREG+1] THEN 01441 M00S01213.fsescrn +++| BEGIN 01442 M00S01214.fsescrn +++| IF MARKTYPE NQ 2 THEN ROWPAINT[L2]=TRUE; 01443 M00S01215.fsescrn +++| IF MARKTYPE NQ 3 THEN ROWPMARK[L2]=TRUE; 01444 M00S01216.fsescrn +++| END 01445 M00S01217.fsescrn +++| IF TABATTRCHR[0] THEN 01446 M00S01218.fsescrn +++| BEGIN # IF ATTRIBUTE TAKES A POS # 01447 M00S01219.fsescrn +++| IF L1 EQ REGLINE[MARKREG] AND MARKTYPE EQ 3 THEN 01448 M00S01220.fsescrn +++| BEGIN # IF CLEARING MARKS # 01449 M00S01221.fsescrn +++| ROWPAINT[L2-1] = TRUE; # FLAG FOR REPAINT # 01450 M00S01222.fsescrn +++| END 01451 M00S01223.fsescrn +++| END 01452 M00S01224.fsescrn +++| END 01453 M00S01225.fsescrn +++| END 01454 M00S01226.fsescrn +++| 01455 M00S01227.fsescrn +++| IF NUMMARKS GR 0 THEN # SEE IF NEED TO HIGHLIGHT ANY # 01456 M00S01228.fsescrn +++| BEGIN 01457 M00S01229.fsescrn +++| DOMARK(1); 01458 M00S01230.fsescrn +++| IF SPLITFILE[2] NQ 0 THEN DOMARK(2); 01459 M00S01231.fsescrn +++| END 01460 M00S01232.fsescrn +++| 01461 M00S01233.fsescrn +++| END # OF PAINTMARKS # 01462 M00S01234.fsescrn +++| 01463 M00S01235.fsescrn +++| 01464 M00S01236.fsescrn +++|PROC PAINTSCREEN; 01465 M00S01237.fsescrn +++| IOBEGIN(PAINTSCREEN) 01466 M00S01238.fsescrn +++|# 01467 M00S01239.fsescrn +++|** PAINTSCREEN - OUTPUT NORMAL AND SECONDARY DISPLAYS. 01468 M00S01240.fsescrn +++|* 01469 M00S01241.fsescrn +++|* PAINTSCREEN IS CALLED TO FILL A DISPLAY PAGE. THE 01470 M00S01242.fsescrn +++|* PROMPTING FLAG INDICATES WHETHER THIS IS A NORMAL 01471 M00S01243.fsescrn +++|* (PRIMARY) DISPLAY OR A SECONDARY DISPLAY. THE ROWPAINT 01472 M00S01244.fsescrn +++|* BITS INDICATE WHICH PORTIONS OF THE SCREEN ARE ALREADY 01473 M00S01245.fsescrn +++|* CORRECT AND WHICH REALLY NEED TO BE PAINTED. THE YCURSOR 01474 M00S01246.fsescrn +++|* IS FORCED TO POINT TO EITHER TEXT OR THE COMMAND AREA IF 01475 M00S01247.fsescrn +++|* IT DOES NOT ALREADY. ANY MESSAGE IN THE ERROR STRING 01476 M00S01248.fsescrn +++|* BUFFER IS OUTPUT AND CLEARED. IF AN ERROEOUS COMMAND WAS 01477 M00S01249.fsescrn +++|* PREVIOUSLY ATTEMPTED, PAINTSCREEN RECOGNIZES THIS AND 01478 M00S01250.fsescrn +++|* RE-PRINTS THE OLD COMMAND BUFFER WITH THE CURSOR FLASHING 01479 M00S01251.fsescrn +++|* AT THE ILLEGAL SYNTAX. FILE POSITIONING IS FORCED TO 01480 M00S01252.fsescrn +++|* ALIGN WITH THE CURSOR FOR ON-TEXT CURSORS. TITLE LINES 01481 M00S01253.fsescrn +++|* ARE VERIFIED FOR CORRECTNESS AND POSSIBLY PAINTED. 01482 M00S01254.fsescrn +++|* 01483 M00S01255.fsescrn +++|* ENTRY YCURSOR - COMMAND PROCESSOR'S FAVORITE CURSOR. 01484 M00S01256.fsescrn +++|* NEGATIVE=SELECT CURSOR FOR CURRENT LINE. 01485 M00S01257.fsescrn +++|* ON TEXT OR COMMAND ROW=USE THAT. 01486 M00S01258.fsescrn +++|* XCURSOR - ALSO WHERE COMMAND PROCESSOR WANT IT. 01487 M00S01259.fsescrn +++|* VTXMAX - MAXIMUM COLUMN POSITION. 01488 M00S01260.fsescrn +++|* ROWTYPE[ALL], ROWSPLIT[ALL] - SETUP. 01489 M00S01261.fsescrn +++|* SPLITFILE[1-2] - SETUP. 01490 M00S01262.fsescrn +++|* CURRENT, CURFILE, CURSPLIT - WHERE WE ARE. 01491 M00S01263.fsescrn +++|* PROMPTING - PRIMARY OR SECONDARY DISPLAY. 01492 M00S01264.fsescrn +++|* LTPS(1-2), LASTBOTS, LASTSIZE, LASTNAME - MUST 01493 M00S01265.fsescrn +++|* BE LEFT OVER FROM PREVIOUS PAINTSCREEN OR -1. 01494 M00S01266.fsescrn +++|* COMMANDROW - SETUP. 01495 M00S01267.fsescrn +++|* ROWORIG[ALL] - MUST BE AS LEFT BY LAST CALL HERE 01496 M00S01268.fsescrn +++|* EXCEPT AS UPDATED BY DELX AND INSX. 01497 M00S01269.fsescrn +++|* ROWPAINT[ALL] - WHICH LINES NEED PAINTING. 01498 M00S01270.fsescrn +++|* TOPS(1-2), BOTS(1-2) - SETUP. 01499 M00S01271.fsescrn +++|* ROWCOLUM[ALL] - WHERE WANT SCALE PATTERN PAINTED. 01500 M00S01272.fsescrn +++|* XSHIFT[1-2] - SETUP. 01501 M00S01273.fsescrn +++|* MRKCHAR[0-1] - SETUP. 01502 M00S01274.fsescrn +++|* USRNUMCOL, USRNUMLIN - LOGICAL DIMENSIONS. 01503 M00S01275.fsescrn +++|* ERRSTRING - ERROR MESSAGE BUFFER. 01504 M00S01276.fsescrn +++|* CMDLIN - RESIDUAL COMMAND BUFFER. 01505 M00S01277.fsescrn +++|* TOPF(1-2), BOTF(1-2) - SETUP. 01506 M00S01278.fsescrn +++|* FKEYSHOW - HOW MANY FUNCTION KEYS TO DISPLAY.
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2700 |
Seq # *Modification Id* Act ----------------------------+ 01507 M01S00001.ns2700 +++|* SHIFTFKEY - FLAG TO DISPLAY SHIFTED FUNCTION KEYS. 01508 M00S01279.fsescrn +++|* ERRCURSOR - IF POSITIVE, XCURSOR FOR SYNTAX ERROR. 01509 M00S01280.fsescrn +++|* 01510 M00S01281.fsescrn +++|* EXIT XCURSOR, YCURSOR - POSSIBLY AT NEW LOCATION. 01511 M00S01282.fsescrn +++|* TOPS(1-2), BOTS(1-2) - POSSIBLY UPDATED. 01512 M00S01283.fsescrn +++|* CURFILE - UPDATED IF YCURSOR UPDATED. 01513 M00S01284.fsescrn +++|* CURSPLIT - UPDATED IF YCURSOR UPDATED. 01514 M00S01285.fsescrn +++|* ERRSTRING - POSSIBLY WIDE LINE WARNING. 01515 M00S01286.fsescrn +++|* ROWPAINT[ALL] - FALSE EXCEPT POSSIBLY COMMANDROW. 01516 M00S01287.fsescrn +++|* ROWORIG[ALL] - REDEFINED. 01517 M00S01288.fsescrn +++|* ROWCOLUM[ALL] - FALSE. 01518 M00S01289.fsescrn +++|* ROWPMARK[ALL] - FALSE. 01519 M00S01290.fsescrn +++|* LTPS(1-2), LASTBOTS, LASTSIZE, LASTNAME - REDEFINED. 01520 M00S01291.fsescrn +++|* 01521 M00S01292.fsescrn +++|* MACROS GETCHAR, SETCHAR, LTOY. 01522 M00S01293.fsescrn +++|* 01523 M00S01294.fsescrn +++|* CALLS GENDECIMAL, GENLITERAL, GENNAME, GENTITLE, LENGTH, 01524 M00S01295.fsescrn +++|* PAINTMARKS, PAINTSPLIT, POSZ, SETTOPBOTS, TRIMPAD, 01525 M00S01296.fsescrn +++|* TTLCSTR, TTDEC, TTLFN, TTSTR, TTST, VDTCHR, VDTCLL 01526 M00S01297.fsescrn +++|* VDTPOS, VDTSAM. 01527 M00S01298.fsescrn +++|* 01528 M00S01299.fsescrn +++|* USES SPLIT, FILNUM, FKEYNDX, SCRNPT1, SCRNPT2, 01529 M00S01300.fsescrn +++|* SCRNPT3, SCRNPT4, SCRNPT5, SCRNPT6, LIN. 01530 M00S01301.fsescrn +++|# 01531 M00S01302.fsescrn +++| 01532 M00S01303.fsescrn +++| SWITCH PAINTSW 01533 M00S01304.fsescrn +++| PTEMPTY, # EMPTY LINE # 01534 M00S01305.fsescrn +++| PTCMD, # COMMAND LINE # 01535 M00S01306.fsescrn +++| PTTITLE, # TITLE LINE # 01536 M00S01307.fsescrn +++| PTLABEL, # FUNCTION KEY LABEL LINE # 01537 M00S01308.fsescrn +++| PTTEXT, # TEXT LINE # 01538 M00S01309.fsescrn +++| PTRESPONSE; # FSE COMMAND RESPONSE LINE # 01539 M00S01310.fsescrn +++| 01540 M00S01311.fsescrn +++| 01541 M00S01312.fsescrn +++| PROC GENDECIMAL(POS,VALUE); 01542 M00S01313.fsescrn +++|# TITLE GENDECIMAL - GENERATE A DECIMAL NUMBER. # 01543 M00S01314.fsescrn +++| 01544 M00S01315.fsescrn +++| BEGIN # GENDECIMAL # 01545 M00S01316.fsescrn +++| 01546 M00S01317.fsescrn +++|# 01547 M00S01318.fsescrn +++|** GENDECIMAL - GENERATE A DECIMAL NUMBER. 01548 M00S01319.fsescrn +++|* 01549 M00S01320.fsescrn +++|* CONVERT A DISPLAY CODE VALUE TO DECIMAL AND POSITION 01550 M00S01321.fsescrn +++|* IT IN THE TTYLINE. 01551 M00S01322.fsescrn +++|* 01552 M00S01323.fsescrn +++|* PROC GENDECIMAL(POS,VALUE) 01553 M00S01324.fsescrn +++|* 01554 M00S01325.fsescrn +++|* EXIT TTYLINE - SETUP. 01555 M00S01326.fsescrn +++|* 01556 M00S01327.fsescrn +++|* CALLS SETCHAR. 01557 M00S01328.fsescrn +++|* 01558 M00S01329.fsescrn +++|* USES TTYLINE. 01559 M00S01330.fsescrn +++|# 01560 M00S01331.fsescrn +++| 01561 M00S01332.fsescrn +++| ITEM POS I; # POSITION OF NUMBER # 01562 M00S01333.fsescrn +++| ITEM QUIT B; # FINISHED FLAG # 01563 M00S01334.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE # 01564 M00S01335.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE # 01565 M00S01336.fsescrn +++| ITEM TMP3 I; # TEMPORARY STORAGE # 01566 M00S01337.fsescrn +++| ITEM VALUE I; # VALUE TO CONVERT # 01567 M00S01338.fsescrn +++| 01568 M00S01339.fsescrn +++| TMP1=ABS(VALUE); 01569 M00S01340.fsescrn +++| TMP2=0; # COUNT DIGITS # 01570 M00S01341.fsescrn +++| QUIT=FALSE; 01571 M00S01342.fsescrn +++| WHYLE NOT QUIT DO # NOT DONE YET # 01572 M00S01343.fsescrn +++| BEGIN 01573 M00S01344.fsescrn +++| C<TMP2>TMP3=MOD(TMP1,10)+O"33"; # GET A DIGIT # 01574 M00S01345.fsescrn +++| TMP1=TMP1/10; # REDUCE NUMBER # 01575 M00S01346.fsescrn +++| TMP2=TMP2+1; # BUMP POINTER # 01576 M00S01347.fsescrn +++| IF TMP1 EQ 0 THEN QUIT=TRUE; 01577 M00S01348.fsescrn +++| END 01578 M00S01349.fsescrn +++| 01579 M00S01350.fsescrn +++| FOR TMP1=1 STEP 1 UNTIL TMP2 DO 01580 M00S01351.fsescrn +++| BEGIN 01581 M00S01352.fsescrn +++| SETCHAR(TTYLINE,POS,XLTDSPINT[C<TMP2-TMP1>TMP3]); 01582 M00S01353.fsescrn +++| POS=POS+1; 01583 M00S01354.fsescrn +++| END 01584 M00S01355.fsescrn +++| 01585 M00S01356.fsescrn +++| END # GENDECIMAL # 01586 M00S01357.fsescrn +++| 01587 M00S01358.fsescrn +++| 01588 M00S01359.fsescrn +++| PROC GENLITERAL(POS,STR); 01589 M00S01360.fsescrn +++|# TITLE GENLITERAL - GENERATE A LITERAL STRING. # 01590 M00S01361.fsescrn +++| 01591 M00S01362.fsescrn +++| BEGIN # GENLITERAL # 01592 M00S01363.fsescrn +++| 01593 M00S01364.fsescrn +++|# 01594 M00S01365.fsescrn +++|** GENLITERAL - GENERATE A LITERAL STRING. 01595 M00S01366.fsescrn +++|* 01596 M00S01367.fsescrn +++|* GENERATE A LITERAL STRING AND POSITION IT IN THE 01597 M00S01368.fsescrn +++|* TTYLINE. 01598 M00S01369.fsescrn +++|* 01599 M00S01370.fsescrn +++|* PROC GENLITERAL(POS,STR) 01600 M00S01371.fsescrn +++|* 01601 M00S01372.fsescrn +++|* EXIT TTYLINE - SETUP. 01602 M00S01373.fsescrn +++|* 01603 M00S01374.fsescrn +++|* CALLS SETCHAR. 01604 M00S01375.fsescrn +++|* 01605 M00S01376.fsescrn +++|* USES TTYLINE. 01606 M00S01377.fsescrn +++|# 01607 M00S01378.fsescrn +++| 01608 M00S01379.fsescrn +++| ITEM BEGINWORD B; # BEGINNING WORD # 01609 M00S01380.fsescrn +++| ITEM POS I; # POSITION OF STRING # 01610 M00S01381.fsescrn +++| ITEM STR C(40); # STRING TO CONVERT # 01611 M00S01382.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE # 01612 M00S01383.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE # 01613 M00S01384.fsescrn +++| 01614 M00S01385.fsescrn +++| BEGINWORD=TRUE; 01615 M00S01386.fsescrn +++| TMP1=0; 01616 M00S01387.fsescrn +++| WHYLE TMP1 LS 40 AND C<TMP1>STR NQ "$" DO 01617 M00S01388.fsescrn +++| BEGIN 01618 M00S01389.fsescrn +++| TMP2=C<TMP1>STR; 01619 M00S01390.fsescrn +++| TMP2=XLTDSPINT[TMP2]; 01620 M00S01391.fsescrn +++| IF TMP2 GQ CLETTERA AND TMP2 LQ CLETTERZ THEN 01621 M00S01392.fsescrn +++| BEGIN 01622 M00S01393.fsescrn +++| IF NOT BEGINWORD THEN TMP2=TMP2+CLOWERA-CLETTERA; 01623 M00S01394.fsescrn +++| BEGINWORD=FALSE; 01624 M00S01395.fsescrn +++| END 01625 M00S01396.fsescrn +++| ELSE BEGINWORD=TRUE; 01626 M00S01397.fsescrn +++| SETCHAR(TTYLINE,POS,TMP2); 01627 M00S01398.fsescrn +++| POS=POS+1; 01628 M00S01399.fsescrn +++| TMP1=TMP1+1; 01629 M00S01400.fsescrn +++| END 01630 M00S01401.fsescrn +++| 01631 M00S01402.fsescrn +++| END # GENLITERAL # 01632 M00S01403.fsescrn +++| 01633 M00S01404.fsescrn +++| 01634 M00S01405.fsescrn +++| PROC GENNAME(POS,NAME); 01635 M00S01406.fsescrn +++|# TITLE GENNAME - GENERATE A NAME. # 01636 M00S01407.fsescrn +++| 01637 M00S01408.fsescrn +++| BEGIN # GENNAME # 01638 M00S01409.fsescrn +++| 01639 M00S01410.fsescrn +++|# 01640 M00S01411.fsescrn +++|** GENNAME - GENERATE A NAME. 01641 M00S01412.fsescrn +++|* 01642 M00S01413.fsescrn +++|* GENERATE A NAME AND POSITION IT IN THE TTYLINE. 01643 M00S01414.fsescrn +++|* 01644 M00S01415.fsescrn +++|* PROC GENNAME(POS,NAME) 01645 M00S01416.fsescrn +++|* 01646 M00S01417.fsescrn +++|* EXIT TTYLINE - SETUP. 01647 M00S01418.fsescrn +++|* 01648 M00S01419.fsescrn +++|* CALLS SETCHAR. 01649 M00S01420.fsescrn +++|* 01650 M00S01421.fsescrn +++|* USES TTYLINE. 01651 M00S01422.fsescrn +++|# 01652 M00S01423.fsescrn +++| 01653 M00S01424.fsescrn +++| ITEM NAME C(07); # NAME TO CONVERT # 01654 M00S01425.fsescrn +++| ITEM POS I; # POSITION OF NAME # 01655 M00S01426.fsescrn +++| ITEM TMP1 I; # TEMPORARY STORAGE # 01656 M00S01427.fsescrn +++| ITEM TMP2 I; # TEMPORARY STORAGE # 01657 M00S01428.fsescrn +++| 01658 M00S01429.fsescrn +++| FOR TMP1=0 STEP 1 UNTIL 6 DO 01659 M00S01430.fsescrn +++| BEGIN 01660 M00S01431.fsescrn +++| TMP2=C<TMP1>NAME; 01661 M00S01432.fsescrn +++| IF TMP2 NQ 0 AND TMP2 NQ O"55" THEN 01662 M00S01433.fsescrn +++| BEGIN 01663 M00S01434.fsescrn +++| TMP2=XLTDSPINT[TMP2]; 01664 M00S01435.fsescrn +++| SETCHAR(TTYLINE,POS,TMP2); 01665 M00S01436.fsescrn +++| POS=POS+1; 01666 M00S01437.fsescrn +++| END 01667 M00S01438.fsescrn +++| END 01668 M00S01439.fsescrn +++| 01669 M00S01440.fsescrn +++| END # GENNAME # 01670 M00S01441.fsescrn +++| 01671 M00S01442.fsescrn +++| 01672 M00S01443.fsescrn +++| PROC GENTITLE(SPLIT); 01673 M00S01444.fsescrn +++|# TITLE GENTITLE - GENERATE TITLE LINE TEXT. # 01674 M00S01445.fsescrn +++| 01675 M00S01446.fsescrn +++| BEGIN # GENTITLE # 01676 M00S01447.fsescrn +++| 01677 M00S01448.fsescrn +++|# 01678 M00S01449.fsescrn +++|** GENTITLE - GENERATE TITLE LINE TEXT. 01679 M00S01450.fsescrn +++|* 01680 M00S01451.fsescrn +++|* GIVEN A SPLIT, GENERATE THE TITLE LINE. 01681 M00S01452.fsescrn +++|* 01682 M00S01453.fsescrn +++|* PROC GENTITLE(SPLIT) 01683 M00S01454.fsescrn +++|* 01684 M00S01455.fsescrn +++|* ENTRY SPLIT - WHICH SPLIT TO GENERATE TITLE FOR. 01685 M00S01456.fsescrn +++|* 01686 M00S01457.fsescrn +++|* EXIT TTYLIN - TEXT FOR TITLE LINE. 01687 M00S01458.fsescrn +++|* 01688 M00S01459.fsescrn +++|* CALLS GENDECIMAL, GENLITERAL, GENNAME, SETCHAR. 01689 M00S01460.fsescrn +++|* 01690 M00S01461.fsescrn +++| USES TTYLIN. 01691 M00S01462.fsescrn +++|# 01692 M00S01463.fsescrn +++| 01693 M00S01464.fsescrn +++| ITEM FILE I; # FILE SPLIT # 01694 M00S01465.fsescrn +++| ITEM POS I; # POSITION OF TEXT # 01695 M00S01466.fsescrn +++| ITEM SPLIT I; # TITLE SPLIT # 01696 M00S01467.fsescrn +++| 01697 M00S01468.fsescrn +++| POS=0; 01698 M00S01469.fsescrn +++| IF TABATTRCHR[0] THEN GENLITERAL(POS," $"); 01699 M00S01470.fsescrn +++| FILE=SPLITFILE[SPLIT]; 01700 M00S01471.fsescrn +++| IF ASCII[FILE] LQ 1 THEN GENLITERAL(POS,"UPPER CASE $"); 01701 M00S01472.fsescrn +++| GENLITERAL(POS,"FILE $"); 01702 M00S01473.fsescrn +++| GENNAME(POS,FILENAM[FILE]); 01703 M00S01474.fsescrn +++| GENLITERAL(POS," $"); 01704 M00S01475.fsescrn +++| IF NOT SHORTTITLE THEN 01705 M00S01476.fsescrn +++| BEGIN 01706 M00S01477.fsescrn +++| IF TOPF(FILE)+1 EQ BOTF(FILE) THEN GENLITERAL(POS," EMPTY$"); 01707 M00S01478.fsescrn +++| ELSE 01708 M00S01479.fsescrn +++| BEGIN 01709 M00S01480.fsescrn +++| IF TOPS(SPLIT)+1 NQ BOTS(SPLIT) THEN 01710 M00S01481.fsescrn +++| BEGIN 01711 M00S01482.fsescrn +++| GENLITERAL(POS,"LINES $"); 01712 M00S01483.fsescrn +++| GENDECIMAL(POS,TOPS(SPLIT)+1-TOPF(FILNUM)); 01713 M00S01484.fsescrn +++| GENLITERAL(POS," - $"); 01714 M00S01485.fsescrn +++| GENDECIMAL(POS,BOTS(SPLIT)-1-TOPF(FILNUM)); 01715 M00S01486.fsescrn +++| END 01716 M00S01487.fsescrn +++| GENLITERAL(POS," SIZE $"); 01717 M00S01488.fsescrn +++| GENDECIMAL(POS,BOTF(FILE)-1-TOPF(FILE)); 01718 M00S01489.fsescrn +++| END 01719 M00S01490.fsescrn +++| IF XSHIFT[SPLIT] NQ 0 THEN 01720 M00S01491.fsescrn +++| BEGIN # IF SET VIEW OFFSET ENABLED # 01721 M00S01492.fsescrn +++| GENLITERAL(POS," OFFSET $"); 01722 M00S01493.fsescrn +++| GENDECIMAL(POS,XSHIFT[SPLIT]+1); 01723 M00S01494.fsescrn +++| END 01724 M00S01495.fsescrn +++| IF FILENAM[1] EQ FILENAM[2] THEN 01725 M00S01496.fsescrn +++| BEGIN # IF SAME FILE IN BOTH SPLITS # 01726 M00S01497.fsescrn +++| CHANGED[1] = CHANGED[1] LOR CHANGED[2]; 01727 M00S01498.fsescrn +++| CHANGED[2] = CHANGED[1]; 01728 M00S01499.fsescrn +++| END 01729 M00S01500.fsescrn +++| IF CHANGED[SPLIT] NQ 0 THEN 01730 M00S01501.fsescrn +++| BEGIN # IF FILE HAS BEEN CHANGED # 01731 M00S01502.fsescrn +++| GENLITERAL(POS," (CHANGED)$"); 01732 M00S01503.fsescrn +++| END 01733 M00S01504.fsescrn +++| ELSE 01734 M00S01505.fsescrn +++| BEGIN # NO CHANGE # 01735 M00S01506.fsescrn +++| IF LOCKED[SPLIT] NQ 0 THEN 01736 M00S01507.fsescrn +++| BEGIN # IF FILE IS LOCKED # 01737 M00S01508.fsescrn +++| GENLITERAL(POS," (READ-ONLY)$"); 01738 M00S01509.fsescrn +++| END 01739 M00S01510.fsescrn +++| ELSE 01740 M00S01511.fsescrn +++| BEGIN # NO LOCK # 01741 M00S01512.fsescrn +++| GENLITERAL(POS," (NO CHANGES)$"); 01742 M00S01513.fsescrn +++| END 01743 M00S01514.fsescrn +++| END
Line S00001 Modification History | |
---|---|
M01 (Added by) | fsesc28 |
Seq # *Modification Id* Act ----------------------------+ 01744 M01S00001.fsesc28 +++| IF NUMMARKS GR 0 AND MRKFILE[0] EQ FDLF(FILE) THEN 01745 M01S00002.fsesc28 +++| BEGIN 01746 M01S00003.fsesc28 +++| IF NUMMARKS EQ 1 THEN 01747 M01S00004.fsesc28 +++| GENLITERAL(POS," <MARK ACTIVE>$"); 01748 M01S00005.fsesc28 +++| ELSE 01749 M01S00006.fsesc28 +++| GENLITERAL(POS," <MARKS ACTIVE>$"); 01750 M01S00007.fsesc28 +++| END 01751 M00S01515.fsescrn +++| END 01752 M00S01516.fsescrn +++| FOR POS = POS STEP 1 UNTIL(VTXMAX - ATTCOUNT) DO 01753 M00S01517.fsescrn +++| BEGIN # UNTIL END OF LINE # 01754 M00S01518.fsescrn +++| SETCHAR(TTYLINE,POS,CBLANK); 01755 M00S01519.fsescrn +++| END 01756 M00S01520.fsescrn +++| SETCHAR(TTYLINE,POS,CENDLINE); 01757 M00S01521.fsescrn +++| 01758 M00S01522.fsescrn +++| END # GENTITLE # 01759 M00S01523.fsescrn +++| 01760 M00S01524.fsescrn +++| 01761 M00S01525.fsescrn +++| 01762 M00S01526.fsescrn +++| 01763 M00S01527.fsescrn +++| # MAIN PAINTSCREEN CODE STARTS HERE # 01764 M00S01528.fsescrn +++| 01765 M00S01529.fsescrn +++| IF NOT PROMPTING THEN 01766 M00S01530.fsescrn +++| BEGIN 01767 M00S01531.fsescrn +++| 01768 M00S01532.fsescrn +++| IF FORCEAUTOP[0] THEN 01769 M00S01533.fsescrn +++| BEGIN # IF AUTO HALF PAGE # 01770 M00S01534.fsescrn +++| TOPS(CURSPLIT) = BOTS(CURSPLIT) - NUMROWS[CURSPLIT] / 2; 01771 M00S01535.fsescrn +++| SETTOPS(CURSPLIT); 01772 M00S01536.fsescrn +++| XCURSOR = 0; 01773 M00S01537.fsescrn +++| YCURSOR = BOTS(CURSPLIT); 01774 M00S01538.fsescrn +++| YCURSOR = LTOY(YCURSOR,CURSPLIT); 01775 M00S01539.fsescrn +++| SETBOTS(CURSPLIT); 01776 M00S01540.fsescrn +++| PAINTSPLIT; 01777 M00S01541.fsescrn +++| END 01778 M00S01542.fsescrn +++| FORCEAUTOP[0] = FALSE; 01779 M00S01543.fsescrn +++| 01780 M00S01544.fsescrn +++| # DETERMINE WHETHER RESIDUAL CURSOR IS OUT OF TEXT AREAS # 01781 M00S01545.fsescrn +++| 01782 M00S01546.fsescrn +++| SCRNPT2=0; 01783 M00S01547.fsescrn +++| IF YCURSOR LS 0 OR YCURSOR GR VTYMAX THEN SCRNPT2=1; 01784 M00S01548.fsescrn +++| IF SCRNPT2 EQ 0 THEN 01785 M00S01549.fsescrn +++| BEGIN 01786 M00S01550.fsescrn +++| IF ROWTYPE[YCURSOR] NQ ROWST"TEXT" 01787 M00S01551.fsescrn +++| AND ROWTYPE[YCURSOR] NQ ROWST"COMMAND" THEN SCRNPT2=1; 01788 M00S01552.fsescrn +++| END 01789 M00S01553.fsescrn +++| 01790 M00S01554.fsescrn +++| # VERIFY VALIDITY OF SCREEN BOUNDS, MAKE GOOD CURSOR POSITION # 01791 M00S01555.fsescrn +++| 01792 M00S01556.fsescrn +++| IF SCRNPT2 EQ 0 THEN 01793 M00S01557.fsescrn +++| BEGIN # SIMPLY VERIFY SCREEN BOUNDS # 01794 M00S01558.fsescrn +++| SETTOPBOTS(1); 01795 M00S01559.fsescrn +++| IF SPLITFILE[2] NQ 0 THEN SETTOPBOTS(2); 01796 M00S01560.fsescrn +++| END 01797 M00S01561.fsescrn +++| ELSE 01798 M00S01562.fsescrn +++| BEGIN # RECOMPUTE CURSOR WHEN OFF TEXT # 01799 M00S01563.fsescrn +++| IF SPLITFILE[2] EQ 0 THEN CURFILE=SPLITFILE[1]; 01800 M00S01564.fsescrn +++| CURSPLIT=MIN(MAX(CURSPLIT,1),2); 01801 M00S01565.fsescrn +++| IF SPLITFILE[CURSPLIT] NQ CURFILE 01802 M00S01566.fsescrn +++| THEN CURSPLIT=CURSPLIT LXR 3; 01803 M00S01567.fsescrn +++| IF SPLITFILE[2] NQ 0 01804 M00S01568.fsescrn +++| AND FDLF(SPLITFILE[1]) EQ FDLF(SPLITFILE[2]) THEN 01805 M00S01569.fsescrn +++| BEGIN 01806 M00S01570.fsescrn +++| SETTOPBOTS(CURSPLIT); 01807 M00S01571.fsescrn +++| YCURSOR=CURF(CURFILE); 01808 M00S01572.fsescrn +++| YCURSOR=LTOY(YCURSOR,CURSPLIT); 01809 M00S01573.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TITLE" AND NUMROWS[CURSPLIT] 01810 M00S01574.fsescrn +++| GR 0 THEN YCURSOR=YCURSOR+1; 01811 M00S01575.fsescrn +++| END 01812 M00S01576.fsescrn +++| ELSE 01813 M00S01577.fsescrn +++| BEGIN 01814 M00S01578.fsescrn +++| FOR SCRNPT1=1 STEP 1 UNTIL 2 DO 01815 M00S01579.fsescrn +++| BEGIN 01816 M00S01580.fsescrn +++| IF SPLITFILE[SCRNPT1] NQ 0 THEN 01817 M00S01581.fsescrn +++| BEGIN 01818 M00S01582.fsescrn +++| SETTOPBOTS(SCRNPT1); 01819 M00S01583.fsescrn +++| IF SPLITFILE[SCRNPT1] EQ CURFILE THEN 01820 M00S01584.fsescrn +++| BEGIN 01821 M00S01585.fsescrn +++| YCURSOR=CURF(CURFILE); 01822 M00S01586.fsescrn +++| YCURSOR=LTOY(YCURSOR,SCRNPT1); 01823 M00S01587.fsescrn +++| IF ROWTYPE[YCURSOR] EQ ROWST"TITLE" AND 01824 M00S01588.fsescrn +++| NUMROWS[SCRNPT1] GR 0 THEN YCURSOR=YCURSOR+1; 01825 M00S01589.fsescrn +++| CURSPLIT=SCRNPT1; 01826 M00S01590.fsescrn +++| END 01827 M00S01591.fsescrn +++| END 01828 M00S01592.fsescrn +++| END 01829 M00S01593.fsescrn +++| END 01830 M00S01594.fsescrn +++| END 01831 M00S01595.fsescrn +++| IF FORCEAUTOR[0] THEN 01832 M00S01596.fsescrn +++| BEGIN # IF FORCED TO NEXT LINE # 01833 M00S01597.fsescrn +++| XCURSOR = 0; 01834 M00S01598.fsescrn +++| YCURSOR = YCURSOR + 1; 01835 M00S01599.fsescrn +++| FORCEAUTOR[0] = FALSE; 01836 M00S01600.fsescrn +++| END 01837 M00S01601.fsescrn +++| IF YCURSOR LS 0 OR YCURSOR GR VTYMAX THEN YCURSOR=COMMANDROW; 01838 M00S01602.fsescrn +++| 01839 M00S01603.fsescrn +++| # SEE IF LAST TITLE NOW OBSOLETE # 01840 M00S01604.fsescrn +++| 01841 M00S01605.fsescrn +++| GENTITLE(1); 01842 M00S01606.fsescrn +++| SCRNPT4=MAX(LENGTH(TITLE1LIN),LENGTH(TTYLIN)); 01843 M00S01607.fsescrn +++| FOR SCRNPT1=0 STEP 1 UNTIL SCRNPT4 DO 01844 M00S01608.fsescrn +++| BEGIN 01845 M00S01609.fsescrn +++| GETCHAR(TITLE1LINE,SCRNPT1,SCRNPT2); 01846 M00S01610.fsescrn +++| GETCHAR(TTYLINE,SCRNPT1,SCRNPT3); 01847 M00S01611.fsescrn +++| IF SCRNPT2 NQ SCRNPT3 THEN ROWPAINT[TITLEROW[1]]=TRUE; 01848 M00S01612.fsescrn +++| END 01849 M00S01613.fsescrn +++| IF SPLITFILE[2] NQ 0 THEN 01850 M00S01614.fsescrn +++| BEGIN 01851 M00S01615.fsescrn +++| GENTITLE(2); 01852 M00S01616.fsescrn +++| SCRNPT4=MAX(LENGTH(TITLE2LIN),LENGTH(TTYLIN)); 01853 M00S01617.fsescrn +++| FOR SCRNPT1=0 STEP 1 UNTIL SCRNPT4 DO 01854 M00S01618.fsescrn +++| BEGIN 01855 M00S01619.fsescrn +++| GETCHAR(TITLE2LINE,SCRNPT1,SCRNPT2); 01856 M00S01620.fsescrn +++| GETCHAR(TTYLINE,SCRNPT1,SCRNPT3); 01857 M00S01621.fsescrn +++| IF SCRNPT2 NQ SCRNPT3 THEN ROWPAINT[TITLEROW[2]]=TRUE; 01858 M00S01622.fsescrn +++| END 01859 M00S01623.fsescrn +++| END 01860 M00S01624.fsescrn +++| FOR SPLIT=1 STEP 1 UNTIL 2 DO
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/fsescrn.txt ยท Last modified: (external edit)