cdc:nos2.source:opl.opl871:deck:sform.002
Deck SFORM Part 002
49 Modifications
Listing Sections
- Deck SFORM Start
- Deck SFORM Part 1 (Line 1152)
- Deck SFORM Part 2 (Line 2830)
- Deck SFORM Part 3 (Line 4426)
- Deck SFORM Part 4 (Line 5497)
- Deck SFORM Part 5 (Line 6487)
- Deck SFORM Part 6 (Line 7627)
Source
Seq # *Modification Id* Act ----------------------------+
Line S01381 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02830 M02S01381.ns2275 ---|* EXIT OPENSTAT = 0 IF NO ERROR.
Line S01382 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02831 M02S01382.ns2275 ---|* = 7 IF UNSUPPORTED TERMINAL.
Line S01383 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02832 M02S01383.ns2275 ---|* TERMMODEL = TERMINAL MODEL ORDINAL, IF NO ERROR.
Line S01384 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02833 M02S01384.ns2275 ---|* = -1, ERROR.
Line S01385 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02834 M02S01385.ns2275 ---|*
Line S01386 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02835 M02S01386.ns2275 ---|* CALLS VDTGSL.
Line S01387 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02836 M02S01387.ns2275 ---|*
Line S01388 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02837 M02S01388.ns2275 ---|* USES TERMMODEL.
Line S01389 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02838 M02S01389.ns2275 ---|#
Line S01390 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02839 M02S01390.ns2275 ---|ITEM OPENSTAT I; # STATUS OF TERMINAL IN USE #
Line S01391 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02840 M02S01391.ns2275 ---|
Line S01392 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02841 M02S01392.ns2275 ---|ITEM OSMODEFG I; # OS SCREEN/LINE MODE FLAG #
Line S01393 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02842 M02S01393.ns2275 ---|
Line S01394 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02843 M02S01394.ns2275 ---|VDTGSL(TERMMODEL,OSMODEFG); # GET MODEL AND SCREEN OR LINE #
Line S01395 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02844 M02S01395.ns2275 ---|
Line S01396 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02845 M02S01396.ns2275 ---|IF OSMODEFG NQ 1 THEN
Line S01397 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02846 M02S01397.ns2275 ---| BEGIN # IF OS MODE IS LINE #
Line S01398 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02847 M02S01398.ns2275 ---| OPENSTAT = 7; # TERMINAL IS NOT SUPPORTED #
Line S01399 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02848 M02S01399.ns2275 ---| TERMMODEL = -1;
Line S01400 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02849 M02S01400.ns2275 ---| END
Line S01401 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02850 M02S01401.ns2275 ---|
Line S01402 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2275 |
Seq # *Modification Id* Act ----------------------------+ 02851 M02S01402.ns2275 ---|END # CHKTRM # 02852 M01S01403.sform +++|CONTROL EJECT; 02853 M01S01404.sform +++| 02854 M01S01405.sform +++|PROC CLRLNS; 02855 M01S01406.sform +++| 02856 M01S01407.sform +++|# TITLE CLRLNS - CLEAR LINES. # 02857 M01S01408.sform +++| 02858 M01S01409.sform +++|BEGIN # CLRLNS # 02859 M01S01410.sform +++| 02860 M01S01411.sform +++|# 02861 M01S01412.sform +++|** CLRLNS - CLEAR LINES. 02862 M01S01413.sform +++|* 02863 M01S01414.sform +++|* THIS PROCEDURE CLEARS THE PROPER LINES BEFORE AN OVERLAY 02864 M01S01415.sform +++|* WRITE. 02865 M01S01416.sform +++|* 02866 M01S01417.sform +++|* PROC CLRLNS 02867 M01S01418.sform +++|* 02868 M01S01419.sform +++|* EXIT PROPER LINES CLEARED ON SCREEN. 02869 M01S01420.sform +++|* 02870 M01S01421.sform +++|* CALLS VDTCLL. 02871 M01S01422.sform +++|# 02872 M01S01423.sform +++|ITEM CURYCORD I; # CURRENT Y COORDINATE # 02873 M01S01424.sform +++|ITEM FLDINDEX I; # INDEX INTO FIELD LIST # 02874 M01S01425.sform +++| 02875 M01S01426.sform +++|IF PANSTRFLD[0] EQ 0 THEN RETURN; 02876 M01S01427.sform +++| 02877 M01S01428.sform +++|CURYCORD = -1; # NO CURRENT Y COORDINATE YET # 02878 M01S01429.sform +++|FOR FLDINDEX = 0 STEP 1 WHILE FLDENTRY[FLDINDEX] NQ 0 DO 02879 M01S01430.sform +++| BEGIN 02880 M01S01431.sform +++| IF FLDACTIVE[FLDINDEX] AND FLDYCORD[FLDINDEX] NQ CURYCORD THEN 02881 M01S01432.sform +++| BEGIN # IF ACTIVE FIELD ON NEW LINE # 02882 M01S01433.sform +++| CURYCORD = FLDYCORD[FLDINDEX]; # RESET CURRENT Y COORDINATE # 02883 M01S01434.sform +++| VDTCLL(0,CURYCORD); # CLEAR LINE # 02884 M01S01435.sform +++| END 02885 M01S01436.sform +++| END 02886 M01S00135.252l678 +++|IF TERNOTCHAR[0] THEN VDTCAA(0); # IF LINE OR PAGE TYPE ATTRS. # 02887 M01S01437.sform +++| 02888 M01S01438.sform +++|END # CLRLNS # 02889 M01S01439.sform +++|CONTROL EJECT; 02890 M01S01440.sform +++| 02891 M01S01441.sform +++|PROC CPANEL; 02892 M01S01442.sform +++| 02893 M01S01443.sform +++|# TITLE CPANEL - CLEAN PANEL. # 02894 M01S01444.sform +++| 02895 M01S01445.sform +++|BEGIN # CPANEL # 02896 M01S01446.sform +++| 02897 M01S01447.sform +++|# 02898 M01S01448.sform +++|** CPANEL - CLEAN PANEL. 02899 M01S01449.sform +++|* 02900 M01S01450.sform +++|* THIS PROCEDURE CHECKS FLAGS PERTAINING TO REWRITING THE 02901 M01S01451.sform +++|* SCREEN AND THEN CALLS THE APPROPRIATE PROCEDURES. 02902 M01S01452.sform +++|* 02903 M01S01453.sform +++|* PROC CPANEL 02904 M01S01454.sform +++|* 02905 M01S01455.sform +++|* ENTRY TERMESWRIT = TRUE, IF THE MESSAGE CONTAINS A MESSAGE. 02906 M01S01456.sform +++|* TERMESREAD = TRUE, IF THE MESSAGE AREA CAN BE CLEARED.
Line S01457 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform24 |
Seq # *Modification Id* Act ----------------------------+ 02907 M02S01457.sform24 ---|* TERREWFLDS = TRUE, IF AT LEAST ONE INPUT FIELD NEEDS
Line S01458 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform24 |
Seq # *Modification Id* Act ----------------------------+ 02908 M02S01458.sform24 ---|* TO BE REWRITTEN. 02909 M01S00002.sform24 +++|* TERREWFLDS = TRUE, IF ONE OR MORE FIELDS NEED REWRITING. 02910 M01S00003.sform24 +++|* TERREWSCRN = TRUE, IF THE ENTIRE SCREEN NEEDS REWRITING. 02911 M01S01459.sform +++|* 02912 M01S01460.sform +++|* EXIT TERMESREAD = FALSE. 02913 M01S01461.sform +++|* TERREWFLDS = FALSE. 02914 M01S00004.sform24 +++|* TERREWSCRN = FALSE. 02915 M01S01462.sform +++|*
Line S01463 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02916 M02S01463.242l642 ---|* CALLS REWFLD, MCLEAN, VDTBOO, VDTCAA, VDTEOO, WRIALL.
Line S00797 Modification History | |
---|---|
M01 (Added by) | 242l642 |
M02 (Updated by) | ns2346 |
Seq # *Modification Id* Act ----------------------------+ 02917 M02S00797.ns2346 ---|* CALLS REWFLD, MCLEAN, VDTCAA, WRIALL. 02918 M01S00007.ns2346 +++|* CALLS REWFLD, MCLEAN, VDTSAM, WRIALL. 02919 M01S01464.sform +++|*
Line S01465 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02920 M02S01465.242l642 ---|* USES TERDONTCLR, TERMESREAD, TERREWFLDS, TERREWSCRN,
Line S01466 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02921 M02S01466.242l642 ---|* TERREWVARS. 02922 M01S00798.242l642 +++|* USES TERDONTCLR, TERMESREAD, TERNOREWRT, TERREWFLDS, 02923 M01S00799.242l642 +++|* TERREWSCRN. 02924 M01S01467.sform +++|# 02925 M01S01468.sform +++|ITEM I I; # LOOP COUNTER # 02926 M01S01469.sform +++| 02927 M01S01470.sform +++|IF TERMESWRIT[0] AND TERMESREAD[0] AND NOT TERREWSCRN[0] THEN 02928 M01S01471.sform +++| BEGIN # CLEAR MESSAGE AREA #
Line S01472 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02929 M02S01472.242l642 ---| VDTBOO; 02930 M01S01473.sform +++| MCLEAN(DUMMY,DUMMY); # CLEAN MESSAGE LINE #
Line S01474 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2346 |
Seq # *Modification Id* Act ----------------------------+ 02931 M02S01474.ns2346 ---| VDTCAA; # CLEAR ALL ATTRIBUTES #
Line S00008 Modification History | |
---|---|
M01 (Added by) | ns2346 |
M02 (Updated by) | ns2356 |
Seq # *Modification Id* Act ----------------------------+ 02932 M02S00008.ns2356 ---| VDTSAM(0); # CLEAR ALL ATTRIBUTES # 02933 M01S00001.ns2356 +++| IF NOT TERBLCKMDE[0] THEN 02934 M01S00002.ns2356 +++| BEGIN 02935 M01S00003.ns2356 +++| VDTSAM(0); 02936 M01S00004.ns2356 +++| END 02937 M01S00005.ns2356 +++| ELSE 02938 M01S00006.ns2356 +++| BEGIN 02939 M01S00007.ns2356 +++| VDTSAM(O"6001"); 02940 M01S00008.ns2356 +++| END
Line S01475 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02941 M02S01475.242l642 ---| VDTEOO; 02942 M01S01476.sform +++| END 02943 M01S01477.sform +++|
Line S01478 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform24 |
Seq # *Modification Id* Act ----------------------------+ 02944 M02S01478.sform24 ---|IF TERREWFLDS[0] THEN 02945 M01S00005.sform24 +++|IF TERREWFLDS[0] OR TERREWSCRN[0] THEN 02946 M01S01479.sform +++| BEGIN # REWRITE FLAGGED FIELDS # 02947 M01S01480.sform +++| TERREADFLG[0] = TRUE; 02948 M01S01481.sform +++| TERDONTCLR[0] = TRUE; # DO NOT CLEAR REWRITE/ENTERED # 02949 M01S01482.sform +++| IF TERREWSCRN[0] THEN 02950 M01S01483.sform +++| BEGIN # FULL REWRITE OF SCREEN # 02951 M01S01484.sform +++| WRIALL; 02952 M01S01485.sform +++| TERREWSCRN[0] = FALSE; 02953 M01S01486.sform +++| END 02954 M01S01487.sform +++| ELSE # REWRITE FLAGGED FIELDS # 02955 M01S01488.sform +++| BEGIN
Line S01489 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02956 M02S01489.242l642 ---| TERREWVARS[0] = FALSE; 02957 M01S00800.242l642 +++| TERNOREWRT[0] = TRUE;
Line S01490 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02958 M02S01490.242l642 ---| VDTBOO; 02959 M01S01491.sform +++| REWFLD; # REWRITE FIELDS #
Line S01492 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02960 M02S01492.242l642 ---| VDTEOO;
Line S01493 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 02961 M02S01493.242l642 ---| TERREWVARS[0] = TRUE; 02962 M01S00801.242l642 +++| TERNOREWRT[0] = FALSE; 02963 M01S01494.sform +++| END 02964 M01S01495.sform +++| TERDONTCLR[0] = FALSE; 02965 M01S01496.sform +++| TERREADFLG[0] = FALSE; 02966 M01S01497.sform +++| END 02967 M01S01498.sform +++| 02968 M01S01499.sform +++|TERMESREAD[0] = FALSE; 02969 M01S01500.sform +++|TERREWFLDS[0] = FALSE; 02970 M01S01501.sform +++| 02971 M01S01502.sform +++|END # CPANEL # 02972 M01S01503.sform +++|CONTROL EJECT; 02973 M01S01504.sform +++| 02974 M01S01505.sform +++|PROC DATEVL(FLDIND,IVAL); 02975 M01S01506.sform +++| 02976 M01S01507.sform +++|# TITLE DATEVL - DATE VALIDATION. # 02977 M01S01508.sform +++| 02978 M01S01509.sform +++|BEGIN # DATEVL # 02979 M01S01510.sform +++| 02980 M01S01511.sform +++|# 02981 M01S01512.sform +++|** DATEVL - DATE VALIDATION. 02982 M01S01513.sform +++|* 02983 M01S01514.sform +++|* THIS PROCEDURE CHECKS THAT THE INPUT IS A VALID DATE. 02984 M01S01515.sform +++|* 02985 M01S01516.sform +++|* PROC DATEVL(FLDIND,IVAL) 02986 M01S01517.sform +++|* 02987 M01S01518.sform +++|* ENTRY FLDIND = INDEX OF CURRENT FIELD IN FLDLIST. 02988 M01S01519.sform +++|* 02989 M01S01520.sform +++|* EXIT IVAL = INTEGER VALUE OF INPUT. 02990 M01S01521.sform +++|* FLDVALID[FLDIND] = FALSE, IF INVALID INPUT. 02991 M01S01522.sform +++|* 02992 M01S01523.sform +++|* CALLS GETNUM, SKPBLK. 02993 M01S01524.sform +++|# 02994 M01S01525.sform +++|ITEM FLDIND I; # VARIABLE TO BE VALIDATED # 02995 M01S01526.sform +++|ITEM IVAL I; # INTEGER VALUE OF INPUT # 02996 M01S01527.sform +++| 02997 M01S01528.sform +++|ITEM CHAR I; # INPUT CHARACTER # 02998 M01S01529.sform +++|ITEM CHARPOS I; # CHARACTER POSITION IN FIELD # 02999 M01S01530.sform +++|ITEM DATEIND I; # INDEX TO DATEARRAY # 03000 M01S01531.sform +++|ITEM DD I; # DAY # 03001 M01S01532.sform +++|ITEM DIGITS I; # NUMBER OF DIGITS IN SUBFIELD # 03002 M01S01533.sform +++|ITEM FVAL I; # SUBFIELD VALUE # 03003 M01S01534.sform +++|ITEM I I; # LOOP COUNTER # 03004 M01S01535.sform +++|ITEM INPIND I; # INDEX TO NEXT INPUT CHARACTER # 03005 M01S01536.sform +++|ITEM MM I; # MONTH # 03006 M01S01537.sform +++|ITEM TEMP1 I; # USED FOR LEAP YEAR CALCULATION # 03007 M01S01538.sform +++|ITEM VARIND I; # INDEX INTO VARLIST # 03008 M01S01539.sform +++|ITEM YY I; # YEAR # 03009 M01S01540.sform +++| 03010 M01S01541.sform +++|ARRAY DATEARRAY[0:7] P(1); 03011 M01S01542.sform +++| BEGIN 03012 M01S01543.sform +++| ITEM DATECHAR U(00,00,60); # HOLDS INPUT CHARACTERS # 03013 M01S01544.sform +++| END 03014 M01S01545.sform +++| 03015 M01S01546.sform +++|ARRAY DATEDELS[0:2] P(1); 03016 M01S01547.sform +++| BEGIN 03017 M01S01548.sform +++| ITEM DATEDEL U(00,00,60); # DATE DELIMETER # 03018 M01S01549.sform +++| END 03019 M01S01550.sform +++| 03020 M01S01551.sform +++|ARRAY FIELDARRAY[0:2] P(1); 03021 M01S01552.sform +++| BEGIN 03022 M01S01553.sform +++| ITEM FIELD U(00,00,60); # HOLDS MONTH, DAY, YEAR FIELDS # 03023 M01S01554.sform +++| END 03024 M01S01555.sform +++| 03025 M01S01556.sform +++|ARRAY MONTHS [0:12] P(1); # NUMBER OF DAYS IN EACH MONTH # 03026 M01S01557.sform +++| BEGIN # 0TH MONTH = LEAP YEAR FEBRUARY # 03027 M01S01558.sform +++| ITEM MONLENGTH U(00,00,60) = 03028 M01S01559.sform +++| [29,31,28,31,30,31,30,31,31,30,31,30,31]; 03029 M01S01560.sform +++| END 03030 M01S01561.sform +++| 03031 M01S01562.sform +++|SWITCH DATETYPE:FORMTYPE 03032 M01S01563.sform +++| YYMMDD : Y, 03033 M01S01564.sform +++| MMDDYY : M, 03034 M01S01565.sform +++| DDMMYY : D; 03035 M01S01566.sform +++| 03036 M01S01567.sform +++|DATEIND = 0; 03037 M01S01568.sform +++|INPIND = 0; 03038 M01S01569.sform +++|CHARPOS = 0; 03039 M01S01570.sform +++| 03040 M01S01571.sform +++|VARIND = FLDVARORD[FLDIND]; # SET INDEX TO VARLIST # 03041 M01S01572.sform +++|IVAL = 0; 03042 M01S01573.sform +++|SKPBLK(FLDIND,CHARPOS,CHAR); 03043 M01S01574.sform +++|IF CHARPOS GQ FLDLENGTH[FLDIND] THEN 03044 M01S01575.sform +++| BEGIN # BLANK FIELD # 03045 M01S01576.sform +++| FLDVALID[FLDIND] = FALSE; 03046 M01S01577.sform +++| RETURN; 03047 M01S01578.sform +++| END 03048 M01S01579.sform +++| 03049 M01S01580.sform +++|FOR I = 0 STEP 1 UNTIL 2 DO 03050 M01S01581.sform +++| BEGIN 03051 M01S01582.sform +++| FVAL = 0; 03052 M01S01583.sform +++| GETNUM(FLDIND,CHARPOS,FVAL,DIGITS); 03053 M01S01584.sform +++| IF I NQ 2 THEN 03054 M01S01585.sform +++| BEGIN 03055 M01S01586.sform +++| CHAR = NEXTCHAR(FLDIND,CHARPOS); 03056 M01S01587.sform +++| DATEDEL[I] = CHAR; 03057 M01S01588.sform +++| END 03058 M01S01589.sform +++| ELSE CHARPOS = CHARPOS -1; 03059 M01S01590.sform +++| IF NOT(DIGITS EQ 1 OR DIGITS EQ 2) THEN 03060 M01S01591.sform +++| BEGIN 03061 M01S01592.sform +++| FLDVALID[FLDIND] = FALSE; 03062 M01S01593.sform +++| RETURN; 03063 M01S01594.sform +++| END 03064 M01S01595.sform +++| CHARPOS = CHARPOS + 1; 03065 M01S01596.sform +++| FIELD[I] = FVAL; 03066 M01S01597.sform +++| END 03067 M01S01598.sform +++| 03068 M01S01599.sform +++|IF CHARPOS NQ FLDLENGTH[FLDIND] THEN 03069 M01S01600.sform +++| BEGIN # CHECK FOR EXTRA CHARACTERS # 03070 M01S01601.sform +++| SKPBLK(FLDIND,CHARPOS,CHAR); 03071 M01S01602.sform +++| IF CHARPOS LQ FLDLENGTH[FLDIND] - 1 THEN 03072 M01S01603.sform +++| BEGIN # NON-BLANK CHAR AFTER DATE # 03073 M01S01604.sform +++| FLDVALID[FLDIND] = FALSE; 03074 M01S01605.sform +++| RETURN; 03075 M01S01606.sform +++| END 03076 M01S01607.sform +++| END 03077 M01S01608.sform +++| 03078 M01S01609.sform +++|IF DATEDEL[1] NQ DATEDEL[0] THEN 03079 M01S01610.sform +++| BEGIN 03080 M01S01611.sform +++| FLDVALID[FLDIND] = FALSE; 03081 M01S01612.sform +++| RETURN; 03082 M01S01613.sform +++| END 03083 M01S01614.sform +++|GOTO DATETYPE[VARPICTYPE[VARIND]]; 03084 M01S01615.sform +++| 03085 M01S01616.sform +++|MMDDYY: # SET MONTH, DAY, YEAR VALUES # 03086 M01S01617.sform +++| 03087 M01S01618.sform +++| MM = FIELD[0]; 03088 M01S01619.sform +++| DD = FIELD[1]; 03089 M01S01620.sform +++| YY = FIELD[2]; 03090 M01S01621.sform +++| GOTO CHECKDATE; 03091 M01S01622.sform +++| 03092 M01S01623.sform +++|YYMMDD: # SET MONTH, DAY, YEAR VALUES # 03093 M01S01624.sform +++| 03094 M01S01625.sform +++| YY = FIELD[0]; 03095 M01S01626.sform +++| MM = FIELD[1]; 03096 M01S01627.sform +++| DD = FIELD[2]; 03097 M01S01628.sform +++| GOTO CHECKDATE; 03098 M01S01629.sform +++| 03099 M01S01630.sform +++|DDMMYY: # SET MONTH, DAY, YEAR VALUES # 03100 M01S01631.sform +++| 03101 M01S01632.sform +++| DD = FIELD[0]; 03102 M01S01633.sform +++| MM = FIELD[1]; 03103 M01S01634.sform +++| YY = FIELD[2]; 03104 M01S01635.sform +++| 03105 M01S01636.sform +++|CHECKDATE: # CHECK FOR VALID DATE VALUE # 03106 M01S01637.sform +++| 03107 M01S01638.sform +++| IF MM GR 12 OR MM LS 1 THEN 03108 M01S01639.sform +++| BEGIN # INVALID MONTH # 03109 M01S01640.sform +++| FLDVALID[FLDIND] = FALSE; 03110 M01S01641.sform +++| RETURN; 03111 M01S01642.sform +++| END 03112 M01S01643.sform +++| 03113 M01S01644.sform +++| IF MM EQ 2 THEN # CHECK IF LEAP YEAR FEBRUARY # 03114 M01S01645.sform +++| BEGIN 03115 M01S01646.sform +++| TEMP1 = YY / 4; 03116 M01S01647.sform +++| TEMP1 = YY - (4 * TEMP1); 03117 M01S01648.sform +++| IF TEMP1 EQ 0 THEN MM = 0; 03118 M01S01649.sform +++| END 03119 M01S01650.sform +++| 03120 M01S01651.sform +++| IF DD GR MONLENGTH[MM] OR DD LS 1 THEN 03121 M01S01652.sform +++| BEGIN # INVALID DAY # 03122 M01S01653.sform +++| FLDVALID[FLDIND] = FALSE; 03123 M01S01654.sform +++| RETURN; 03124 M01S01655.sform +++| END 03125 M01S01656.sform +++| 03126 M01S01657.sform +++| IF MM EQ 0 THEN MM = 2; 03127 M01S01658.sform +++| IVAL = YY*10000 + MM*100 + DD; 03128 M01S01659.sform +++| 03129 M01S01660.sform +++|END # DATEVL # 03130 M01S01661.sform +++|CONTROL EJECT; 03131 M01S01662.sform +++| 03132 M01S01663.sform +++|PROC ERRMSG(PANELNAME,PROCNAME,PROCMSG,FATAL); 03133 M01S01664.sform +++| 03134 M01S01665.sform +++|# TITLE ERRMSG - ERROR MESSAGE PROCEDURE. # 03135 M01S01666.sform +++| 03136 M01S01667.sform +++|BEGIN # ERRMSG # 03137 M01S01668.sform +++| 03138 M01S01669.sform +++|# 03139 M01S01670.sform +++|** ERRMSG - ERROR MESSAGE PROCEDURE. 03140 M01S01671.sform +++|* 03141 M01S01672.sform +++|* THIS PROCEDURE ISSUES A DAYFILE MESSAGE INDICATING WHICH 03142 M01S01673.sform +++|* PANEL CAUSED AN ERROR AND THE PROCEDURE THAT DETECTED IT. 03143 M01S01674.sform +++|* IT ALSO TERMINATES THE PROGRAM IF THE ERROR IS FATAL. 03144 M01S01675.sform +++|* 03145 M01S01676.sform +++|* PROC ERRMSG(PANELNAME,PROCNAME,PROCMSG,FATAL) 03146 M01S01677.sform +++|* 03147 M01S01678.sform +++|* ENTRY PANELNAME = THE NAME OF THE PANEL. 03148 M01S01679.sform +++|* PROCNAME = THE NAME OF THE EXTERNAL PROCEDURE 03149 M01S01680.sform +++|* THAT DETECTED THE ERROR. 03150 M01S01681.sform +++|* PROCMSG = THE ERROR MESSAGE. 03151 M01S01682.sform +++|* FATAL = TRUE IF THE ERROR IS FATAL, FALSE OTHERWISE. 03152 M01S01683.sform +++|* 03153 M01S01684.sform +++|* EXIT MESSAGE ISSUED TO DAYFILE, PROGRAM TERMINATED IF FATAL 03154 M01S01685.sform +++|* IS TRUE. 03155 M01S01686.sform +++|*
Line S01687 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03156 M02S01687.242l642 ---|* CALLS VDTCLO, VDTCLS, VDTMSG$, VDTSTM. 03157 M01S00802.242l642 +++|*IF UNDEF,QTRM 03158 M01S00803.242l642 +++|* CALLS VDTCLO, VDTCLS, VDTMSG$, VDTSTM. 03159 M01S00804.242l642 +++|*ELSE 03160 M01S00805.242l642 +++|*ENDIF 03161 M01S01688.sform +++|* 03162 M01S01689.sform +++|* USES TERACTIVEP, TERACTPANI, TERCNWRIOV, TERMESREAD, 03163 M01S01690.sform +++|* TERMESWRIT, TERSCREENM, TERSHOWFLG. 03164 M01S01691.sform +++|* 03165 M01S01692.sform +++|* NOTES THIS PROCEDURE IS CALLED BY SFCLOS WHEN A PANEL CANNOT BE 03166 M01S01693.sform +++|* CLOSED (INFORMATIVE MESSAGE ONLY), BY GETADD WHEN A READ, 03167 M01S01694.sform +++|* WRITE, OR SHOW OF A PANEL THAT IS NOT IN THE PANEL LOAD 03168 M01S01695.sform +++|* TABLE IS ATTEMPTED (INFORMATIVE MESSAGE AND TERMINATION 03169 M01S01696.sform +++|* OF PROGRAM), BY WRIPAN WHEN AN ATTEMPT IS MADE TO WRITE 03170 M01S01697.sform +++|* AN OVERLAY PANEL BEFORE A PRIMARY PANEL (INFORMATIVE 03171 M01S01698.sform +++|* MESSAGE AND TERMINATION OF PROGRAM) AND BY SFLOAD IF 03172 M01S01699.sform +++|* AN INTERNAL FAST DYNAMIC LOADER ERROR HAS OCCURRED 03173 M01S01700.sform +++|* (INFORMATIVE MESSAGE ONLY). 03174 M01S01701.sform +++|# 03175 M01S01702.sform +++|ITEM PANELNAME C(7); # PANEL NAME # 03176 M01S01703.sform +++|ITEM PROCNAME C(6); # PROCEDURE NAME # 03177 M01S01704.sform +++|ITEM PROCMSG C(20); # DAYFILE ERROR MESSAGE # 03178 M01S01705.sform +++|ITEM FATAL B; # PANEL NAME # 03179 M01S01706.sform +++| 03180 M01S01707.sform +++|ITEM DAYFILE I = 0; # ISSUE MESSAGE TO DAYFILE # 03181 M01S01708.sform +++|ITEM DAYMESSAGE C(41) = " XXXXXX - PANEL "; 03182 M01S00001.sform19 +++|ITEM EMPTY I = O"00"; # OCTAL ZERO / COLON # 03183 M01S00806.242l642 +++|*IF UNDEF,QTRM 03184 M01S01709.sform +++|ITEM LINE I = 0; # INDICATES LINE MODE TO VDT # 03185 M01S01710.sform +++|ITEM NOMSG I = 0; # NO B-DISPLAY MESSAGE # 03186 M01S00807.242l642 +++|*ENDIF 03187 M01S01711.sform +++|ITEM NONAME C(25) = "NAME IS BLANK. "; # ERROR MSG. #
Line S01712 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03188 M02S01712.242l642 ---|ITEM RECALL I = 1; # RECALL PARAMTER FOR VDTCLO # 03189 M01S00808.242l642 +++|*IF UNDEF,QTRM 03190 M01S00809.242l642 +++|ITEM RECALL I = 1; # RECALL PARAMETER FOR VDTCLO # 03191 M01S00810.242l642 +++|*ENDIF 03192 M01S01713.sform +++|ITEM PANINDEX I; # INDEX INTO PANEL NAME # 03193 M01S01714.sform +++|ITEM PANLEN I; # LENGTH OF PANEL NAME # 03194 M01S00811.242l642 +++|*IF UNDEF,QTRM 03195 M01S01715.sform +++|ITEM PLTCOUNT I; # COUNTER TO CLEAR PLT # 03196 M01S00812.242l642 +++|*ENDIF 03197 M01S01716.sform +++|ITEM SPACE I = O"55"; # DISPLAY CODE BLANK # 03198 M01S01717.sform +++| 03199 M01S01718.sform +++|C<1,6>DAYMESSAGE = PROCNAME; # PUT IN PROCEDURE NAME # 03200 M01S01719.sform +++| 03201 M01S01720.sform +++|PANLEN = 0; 03202 M01S01721.sform +++|FOR PANINDEX = 0 STEP 1 UNTIL 6 DO 03203 M01S01722.sform +++| BEGIN # FIND PANEL NAME LENGTH #
Line S01723 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform19 |
Seq # *Modification Id* Act ----------------------------+ 03204 M02S01723.sform19 ---| IF C<PANINDEX,1>PANELNAME NQ SPACE THEN PANLEN = PANINDEX + 1; 03205 M01S00002.sform19 +++| IF C<PANINDEX,1>PANELNAME NQ SPACE 03206 M01S00003.sform19 +++| AND C<PANINDEX,1>PANELNAME NQ EMPTY THEN 03207 M01S00004.sform19 +++| BEGIN # IF NOT AT END OF PANEL NAME # 03208 M01S00005.sform19 +++| PANLEN = PANINDEX + 1; 03209 M01S00006.sform19 +++| END 03210 M01S01724.sform +++| END 03211 M01S01725.sform +++| 03212 M01S01726.sform +++|IF PANLEN EQ 0 OR PANELNAME EQ 0 THEN 03213 M01S01727.sform +++| BEGIN # IF BLANK PANEL NAME # 03214 M01S01728.sform +++| C<16,25>DAYMESSAGE = NONAME; # OVER RIDE PROCEDURE MSG. # 03215 M01S01729.sform +++| END 03216 M01S01730.sform +++|ELSE 03217 M01S01731.sform +++| BEGIN # PUT IN NAME AND MESSAGE # 03218 M01S01732.sform +++| C<16,PANLEN>DAYMESSAGE = PANELNAME; 03219 M01S01733.sform +++| C<16+PANLEN,25-PANLEN>DAYMESSAGE = PROCMSG; 03220 M01S01734.sform +++| END 03221 M01S01735.sform +++| 03222 M01S01736.sform +++|VDTMSG$(DAYMESSAGE,DAYFILE,1); # ISSUE DAYFILE MESSAGE # 03223 M01S01737.sform +++| 03224 M01S01738.sform +++|IF FATAL THEN 03225 M01S01739.sform +++| BEGIN # IF FATAL ERROR # 03226 M01S00813.242l642 +++|*IF UNDEF,QTRM 03227 M01S01740.sform +++| IF TERSCREENM[0] THEN 03228 M01S01741.sform +++| BEGIN # IF IN SCREEN MODE #
Line S01742 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03229 M02S01742.242l642 ---| TERSCREENM[0] = FALSE; # SET LINE MODE #
Line S00814 Modification History | |
---|---|
M01 (Added by) | 242l642 |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03230 M02S00814.252l678 ---| IF FIRSTWRITE THEN 03231 M01S00136.252l678 +++| IF NOT TERVDTBOOC[0] THEN 03232 M01S00815.242l642 +++| BEGIN # IF FIRST WRITE # 03233 M01S00816.242l642 +++| VDTBOO; # BEGIN OUTPUT SEQUENCE # 03234 M01S00817.242l642 +++| END 03235 M01S01743.sform +++| VDTCLS; # CLEAR SCREEN # 03236 M01S01744.sform +++| FOR PLTCOUNT = 1 STEP 1 UNTIL PLTNUMENT[0] DO 03237 M01S01745.sform +++| BEGIN # CLEAR SEQUENCE NUMBERS # 03238 M01S01746.sform +++| PLTENTRYNM[PLTCOUNT] = 0; 03239 M01S01747.sform +++| END 03240 M01S01748.sform +++| PLTNUMONSC[0] = 0; # NO PANELS ON SCREEN # 03241 M01S01749.sform +++| TERMESWRIT[0] = FALSE; 03242 M01S01750.sform +++| TERMESREAD[0] = FALSE;
Line S01751 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2231 |
Seq # *Modification Id* Act ----------------------------+ 03243 M02S01751.ns2231 ---| VDTSTM(TERMMODEL,LINE); # SET LINE MODE # 03244 M01S00002.ns2231 +++| VDTSTM(LINE,DUMMY); # SET LINE MODE #
Line S00818 Modification History | |
---|---|
M01 (Added by) | 242l642 |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03245 M02S00818.252l678 ---| VDTEOO; # END OUTPUT SEQUENCE # 03246 M01S00137.252l678 +++| IF NOT TERNOVDTEO[0] THEN VDTEOO;
Line S00819 Modification History | |
---|---|
M01 (Added by) | 242l642 |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03247 M02S00819.252l678 ---| FIRSTWRITE = TRUE; 03248 M01S00138.252l678 +++| TERVDTBOOC[0] = FALSE; 03249 M01S01752.sform +++| VDTCLO(RECALL); # FLUSH OUTPUT, RECALL # 03250 M01S01753.sform +++| END
Line S01754 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03251 M02S01754.242l642 ---| ACTIVEPAN = " "; # CLEAR ACTIVE PANEL NAME #
Line S01755 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03252 M02S01755.242l642 ---| ACTPANPLTI = 0; # CLEAR PLT INDEX # 03253 M01S00820.242l642 +++| TERACTPANL[0] = " "; # CLEAR ACTIVE PANEL NAME # 03254 M01S00821.242l642 +++| TERACTPLTI[0] = 0; # CLEAR PLT INDEX # 03255 M01S01756.sform +++| TERCNWRIOV[0] = FALSE; # DO NOT ALLOW OVERLAY WRITE # 03256 M01S01757.sform +++| VDTMSG$(NOMSG,1,1); # CLEAR B-DISPLAY # 03257 M01S01758.sform +++| TERSHOWFLG[0] = FALSE; 03258 M01S01759.sform +++| TERREADFLG[0] = FALSE;
Line S01760 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform21 |
Seq # *Modification Id* Act ----------------------------+ 03259 M02S01760.sform21 ---| STOP; # TERMINATE PROGRAM # 03260 M01S00002.sform21 +++| ABORT; # ABORT THE PROGRAM # 03261 M01S00822.242l642 +++|*ELSE
Line S00823 Modification History | |
---|---|
M01 (Added by) | 242l642 |
M02 (Updated by) | sform21 |
Seq # *Modification Id* Act ----------------------------+ 03262 M02S00823.sform21 ---| STOP; # ABORT THE USER # 03263 M01S00003.sform21 +++| ABORT; # ABORT THE USER # 03264 M01S00824.242l642 +++|*ENDIF 03265 M01S01761.sform +++| END 03266 M01S01762.sform +++| 03267 M01S01763.sform +++|END # ERRMSG # 03268 M01S01764.sform +++|CONTROL EJECT; 03269 M01S01765.sform +++| 03270 M01S01766.sform +++|PROC FFIELD(INPOS,FIELD,OFFSET,OUTFLAG); 03271 M01S01767.sform +++| 03272 M01S01768.sform +++|# TITLE FFIELD - FIND INPUT FIELD. # 03273 M01S01769.sform +++| 03274 M01S01770.sform +++|BEGIN # FFIELD # 03275 M01S01771.sform +++| 03276 M01S01772.sform +++|# 03277 M01S01773.sform +++|** FFIELD - FIND INPUT FIELD. 03278 M01S01774.sform +++|* 03279 M01S01775.sform +++|* THIS PROCEDURE FINDS THE ACTIVE INPUT FIELD ASSOCIATED WITH 03280 M01S01776.sform +++|* THE INPUT RECEIVED FROM SCREEN POSITION INPOS. 03281 M01S01777.sform +++|* 03282 M01S01778.sform +++|* PROC FFIELD(INPOS,FIELD,OFFSET) 03283 M01S01779.sform +++|* 03284 M01S01780.sform +++|* ENTRY INPOS = X/Y POSITION 03285 M01S01781.sform +++|* OUTFLAG = TRUE, INCLUDE ACTIVE OUTPUT ONLY 03286 M01S01782.sform +++|* FIELDS IN THE SEARCH. 03287 M01S01783.sform +++|* 03288 M01S01784.sform +++|* EXIT FIELD = FIELD ASSOCIATED WITH INPUT. 03289 M01S01785.sform +++|* = -1 IF NOT IN A FIELD. 03290 M01S01786.sform +++|* OFFSET = OFFSET OF INPUT INTO FIELD. 03291 M01S01787.sform +++|* 03292 M01S01788.sform +++|* NOTES FFIELD ASSUMES THAT FIELDS DO NOT SPAN LINES. 03293 M01S01789.sform +++|# 03294 M01S01790.sform +++|ITEM INPOS I; # X/Y POSITION # 03295 M01S01791.sform +++|ITEM FIELD I; # INDEX INTO FLDLIST # 03296 M01S01792.sform +++|ITEM OFFSET I; # OFFSET INTO FIELD # 03297 M01S01793.sform +++|ITEM OUTFLAG B; # INCLUDE OUT-ONLY FIELDS # 03298 M01S01794.sform +++| 03299 M01S01795.sform +++|ITEM I I; # LOOP COUNTER # 03300 M01S01796.sform +++|ITEM NOTEND B; # NOT END OF SEARCH # 03301 M01S01797.sform +++| 03302 M01S01798.sform +++|FIELD = -1; # NOT FOUND UNTIL PROVEN FOUND # 03303 M01S01799.sform +++|NOTEND = TRUE; 03304 M01S01800.sform +++|OFFSET = 0; 03305 M01S01801.sform +++| 03306 M01S01802.sform +++|FOR I = 0 STEP 1 WHILE NOTEND 03307 M01S01803.sform +++| AND FLDENTRY[I] NQ 0 DO 03308 M01S01804.sform +++| BEGIN # FIND FIELD CHAR WAS ENTERED IN # 03309 M01S01805.sform +++| IF INPOS LS FLDPOS[I] AND FLDACTIVE[I] THEN NOTEND = FALSE; 03310 M01S01806.sform +++| ELSE 03311 M01S01807.sform +++| BEGIN 03312 M01S01808.sform +++| IF (FLDINPUTV[I] AND FLDACTIVE[I]) 03313 M01S01809.sform +++| OR (FLDVARFLAG[I] AND OUTFLAG AND FLDACTIVE[I]) THEN 03314 M01S01810.sform +++| BEGIN 03315 M01S01811.sform +++| FIELD = I; 03316 M01S01812.sform +++| END 03317 M01S01813.sform +++| END 03318 M01S01814.sform +++| END 03319 M01S01815.sform +++| 03320 M01S01816.sform +++|IF VALIDFIELD THEN 03321 M01S01817.sform +++| BEGIN # IF VALID FIELD FOUND # 03322 M01S01818.sform +++| OFFSET = INPOS - FLDPOS[FIELD]; 03323 M01S01819.sform +++| IF OFFSET GQ FLDLENGTH[FIELD] THEN 03324 M01S01820.sform +++| BEGIN # INPUT BEYOND END OF FIELD # 03325 M01S01821.sform +++| OFFSET = 0; 03326 M01S01822.sform +++| FIELD = -1; 03327 M01S01823.sform +++| END 03328 M01S01824.sform +++| END 03329 M01S01825.sform +++| 03330 M01S01826.sform +++|END # FFIELD # 03331 M01S01827.sform +++|CONTROL EJECT; 03332 M01S01828.sform +++| 03333 M01S01829.sform +++|PROC FFIRST(FLDIND); 03334 M01S01830.sform +++| 03335 M01S01831.sform +++|# TITLE FFIRST - FIND FIRST INPUT FIELD. # 03336 M01S01832.sform +++| 03337 M01S01833.sform +++|BEGIN # FFIRST # 03338 M01S01834.sform +++| 03339 M01S01835.sform +++|# 03340 M01S01836.sform +++|** FFIRST - FIND FIRST INPUT FIELD. 03341 M01S01837.sform +++|* 03342 M01S01838.sform +++|* THIS PROCEDURE FINDS THE FIRST ACTIVE INPUT FIELD IN THE PANEL 03343 M01S01839.sform +++|* THAT DOES NOT HAVE A VALID ENTRY. IF ALL INPUT FIELDS ARE BOTH 03344 M01S01840.sform +++|* ENTERED AND VALID THEN THE FIRST ACTIVE INPUT FIELD IS RETURNED. 03345 M01S01841.sform +++|* 03346 M01S01842.sform +++|* PROC FFIRST(FLDIND) 03347 M01S01843.sform +++|* 03348 M01S01844.sform +++|* EXIT FLDIND = INDEX OF FIRST INPUT FIELD 03349 M01S01845.sform +++|* = -1, IF NO INPUT FIELD FOUND. 03350 M01S01846.sform +++|# 03351 M01S01847.sform +++|ITEM FLDIND I; # FIELD INDEX # 03352 M01S01848.sform +++| 03353 M01S01849.sform +++|ITEM FIRST B; # STILL LOOKING FOR FIRST FIELD # 03354 M01S01850.sform +++|ITEM FOUND B; # FOUND AN UNENTERED INPUT FIELD # 03355 M01S01851.sform +++|ITEM I I; # LOOP COUNTER # 03356 M01S01852.sform +++| 03357 M01S01853.sform +++|FLDIND = -1; 03358 M01S01854.sform +++|FIRST = TRUE; 03359 M01S01855.sform +++|FOUND = FALSE; 03360 M01S01856.sform +++| 03361 M01S01857.sform +++|FOR I = 0 STEP 1 WHILE NOT FOUND AND FLDENTRY[I] NQ 0 DO 03362 M01S01858.sform +++| BEGIN # SEARCH FIELD LIST # 03363 M01S01859.sform +++| IF FLDINPUTV[I] AND NOT FOUND AND FLDACTIVE[I] 03364 M01S01860.sform +++| AND (NOT FLDENTERED[I] OR NOT FLDVALID[I]) THEN 03365 M01S01861.sform +++| BEGIN # FIRST AVAILABLE FIELD # 03366 M01S01862.sform +++| FIRST = FALSE; 03367 M01S01863.sform +++| FOUND = TRUE; 03368 M01S01864.sform +++| FLDIND = I; 03369 M01S01865.sform +++| END 03370 M01S01866.sform +++| ELSE IF FIRST AND FLDINPUTV[I] AND FLDACTIVE[I] THEN 03371 M01S01867.sform +++| BEGIN # FIRST INPUT FIELD # 03372 M01S01868.sform +++| FIRST = FALSE; 03373 M01S01869.sform +++| FLDIND = I; 03374 M01S01870.sform +++| END 03375 M01S01871.sform +++| END 03376 M01S01872.sform +++| 03377 M01S01873.sform +++|END # FFIRST # 03378 M01S01874.sform +++|CONTROL EJECT; 03379 M01S01875.sform +++| 03380 M01S01876.sform +++|PROC FMATCH(FLDIND,MATCHIND,MATCHCOUNT); 03381 M01S01877.sform +++| 03382 M01S01878.sform +++|# TITLE FMATCH - FIND ENTRY IN MATCH LIST. # 03383 M01S01879.sform +++| 03384 M01S01880.sform +++|BEGIN # FMATCH # 03385 M01S01881.sform +++| 03386 M01S01882.sform +++|# 03387 M01S01883.sform +++|** FMATCH - FIND ENTRY IN MATCH LIST. 03388 M01S01884.sform +++|* 03389 M01S01885.sform +++|* THIS PROCEDURE FINDS THE FIRST ENTRY IN THE VARIABLE MATCH LIST 03390 M01S01886.sform +++|* WHICH MATCHES THE ENTERED CHARACTERS COMPLETELY OR IN PART. 03391 M01S01887.sform +++|* 03392 M01S01888.sform +++|* PROC FMATCH(FLDIND,MATCHIND,MATCHCOUNT) 03393 M01S01889.sform +++|* 03394 M01S01890.sform +++|* ENTRY FLDIND = POINTER INTO FLDLIST OF CURRENT FIELD. 03395 M01S01891.sform +++|* 03396 M01S01892.sform +++|* EXIT MATCHIND = INDEX INTO MATCHLIST OF FIRST VALID MATCH. 03397 M01S01893.sform +++|* = -1 IF NO VALID MATCH FOUND. 03398 M01S01894.sform +++|* MATCHCOUNT = NUMBER OF VALID MATCHES FOUND. 03399 M01S01895.sform +++|* -1 IF EXACT (TO 10 CHARACTERS) MATCH FOUND. 03400 M01S01896.sform +++|# 03401 M01S01897.sform +++|ITEM FLDIND I; # INDEX OF FIELD IN FLDLIST # 03402 M01S01898.sform +++|ITEM MATCHIND I; # INDEX OF MATCH IN MATCHLIST # 03403 M01S01899.sform +++|ITEM MATCHCOUNT I; # NUMBER OF VALID MATCHES FOUND # 03404 M01S01900.sform +++| 03405 M01S01901.sform +++|ITEM CHARPOS I; # INPUT CHAR POSITION IN FIELD # 03406 M01S01902.sform +++|ITEM EXACT B; # EXACT MATCH FOUND # 03407 M01S01903.sform +++|ITEM I I; # LOOP COUNTER # 03408 M01S01904.sform +++|ITEM INPCHAR I; # INPUT CHARACTER # 03409 M01S01905.sform +++|ITEM LASTCHARP I; # LAST INPUT CHARACTER POSITION # 03410 M01S01906.sform +++|ITEM MATCHCHAR I; # MATCH CHARACTER # 03411 M01S01907.sform +++|ITEM MATCHCI I; # CHAR INDEX OF MATCH CHARACTER # 03412 M01S01908.sform +++|ITEM MATCHED B; # INPUT MATCHED LIST ENTRY # 03413 M01S01909.sform +++|ITEM MATCHLEN I; # LENGTH OF MATCH STRING # 03414 M01S00001.ns2612 +++|ITEM MATCHMAX I; # EXACT MATCH CHARACTER COUNT # 03415 M01S00002.ns2612 +++|ITEM MATCHWDS I; # NUMBER OF WORDS TO HOLD FIELD # 03416 M01S01910.sform +++|ITEM MATCHWI I; # WORD INDEX OF MATCH CHARACTER # 03417 M01S01911.sform +++|ITEM STARTCHARP I; # FIRST INPUT CHARACTER POSITION # 03418 M01S01912.sform +++|ITEM VARIND I; # INDEX INTO VARLIST # 03419 M01S01913.sform +++| 03420 M01S01914.sform +++|VARIND = FLDVARORD[FLDIND]; 03421 M01S01915.sform +++|P<MATCHLIST> = LOC(RECWORDC[0]) + VARVALOS[VARIND]; 03422 M01S01916.sform +++|MATCHCHAR = 0; 03423 M01S01917.sform +++| 03424 M01S01918.sform +++|LASTCHARP = -1; 03425 M01S01919.sform +++|STARTCHARP = -1; 03426 M01S01920.sform +++| 03427 M01S01921.sform +++|FOR I = 0 STEP 1 UNTIL FLDLENGTH[FLDIND] - 1 DO 03428 M01S01922.sform +++| BEGIN # LOOK FOR FIRST AND LAST CHAR # 03429 M01S01923.sform +++| IF NEXTCHAR(FLDIND,I) NQ BLANK THEN 03430 M01S01924.sform +++| BEGIN # NON-BLANK CHARACTER # 03431 M01S01925.sform +++| LASTCHARP = I; 03432 M01S01926.sform +++| IF STARTCHARP EQ -1 THEN STARTCHARP = I; 03433 M01S01927.sform +++| END 03434 M01S01928.sform +++| END 03435 M01S01929.sform +++| 03436 M01S01930.sform +++|IF STARTCHARP EQ -1 THEN 03437 M01S01931.sform +++| BEGIN # NO CHARACTERS FOUND # 03438 M01S01932.sform +++| STARTCHARP = 0; 03439 M01S01933.sform +++| LASTCHARP = 0; 03440 M01S01934.sform +++| END 03441 M01S01935.sform +++|MATCHLEN = LASTCHARP - STARTCHARP + 1;
Line S01936 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03442 M02S01936.ns2612 ---|IF MATCHLEN GR 10 THEN MATCHLEN = 10;
Line S01937 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03443 M02S01937.ns2612 ---|MATCHIND = -1; # DEFAULT INDEX IF MISSING # 03444 M01S00003.ns2612 +++|MATCHMAX = FLDLENGTH[FLDIND]; 03445 M01S00004.ns2612 +++|IF PANVERSION[0] EQ 0 THEN 03446 M01S00005.ns2612 +++| BEGIN # IF MATCH ENTRIES ONLY 10 CHAR. # 03447 M01S00006.ns2612 +++| IF MATCHMAX GR 10 THEN 03448 M01S00007.ns2612 +++| BEGIN 03449 M01S00008.ns2612 +++| MATCHMAX = 10; 03450 M01S00009.ns2612 +++| IF MATCHLEN GR 10 THEN MATCHLEN = 10; 03451 M01S00010.ns2612 +++| END 03452 M01S00011.ns2612 +++| END 03453 M01S00012.ns2612 +++|MATCHWDS = (MATCHMAX+9)/10; # WORDS PER MATCH ENTRY # 03454 M01S00013.ns2612 +++|MATCHIND = -MATCHWDS; # DEFAULT INDEX IF NO MATCH # 03455 M01S01938.sform +++|MATCHCOUNT = 0; 03456 M01S01939.sform +++|
Line S01940 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03457 M02S01940.ns2612 ---|FOR MATCHWI = 0 STEP 1 WHILE MATCHWORD[MATCHWI] NQ 0 03458 M01S00014.ns2612 +++|FOR MATCHWI = 0 STEP MATCHWDS WHILE MATCHWORD[MATCHWI] NQ 0 03459 M01S01941.sform +++| AND MATCHCOUNT GQ 0 DO 03460 M01S01942.sform +++| BEGIN 03461 M01S01943.sform +++| MATCHED = TRUE; 03462 M01S01944.sform +++| CHARPOS = STARTCHARP;
Line S01945 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03463 M02S01945.ns2612 ---| FOR MATCHCI = 0 STEP 1 UNTIL MATCHLEN - 1 DO 03464 M01S00015.ns2612 +++| FOR MATCHCI = 0 STEP 1 WHILE MATCHED AND MATCHCI LS MATCHLEN DO 03465 M01S01946.sform +++| BEGIN # CHECK CHARACTERS FOR MATCH # 03466 M01S01947.sform +++| B<48,12>MATCHCHAR = C<MATCHCI*2,2>MATCH[MATCHWI]; 03467 M01S01948.sform +++| INPCHAR = NEXTCHAR(FLDIND,CHARPOS); 03468 M01S01949.sform +++| IF UPPER(MATCHCHAR) NQ UPPER(INPCHAR) THEN MATCHED = FALSE; 03469 M01S01950.sform +++| CHARPOS = CHARPOS + 1; 03470 M01S01951.sform +++| END 03471 M01S01952.sform +++| IF MATCHED THEN 03472 M01S01953.sform +++| BEGIN # FIRST (MATCHLEN) CHARS MATCH # 03473 M01S01954.sform +++| EXACT = TRUE;
Line S01955 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03474 M02S01955.ns2612 ---| IF MATCHLEN LS 10 THEN 03475 M01S00016.ns2612 +++| FOR MATCHCI = MATCHLEN STEP 1 UNTIL MATCHMAX-1 DO 03476 M01S01956.sform +++| BEGIN # CHECK REST OF CHARS FOR BLANKS #
Line S01957 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03477 M02S01957.ns2612 ---| FOR MATCHCI = MATCHLEN STEP 1 UNTIL 9 DO
Line S01958 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03478 M02S01958.ns2612 ---| BEGIN
Line S01959 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03479 M02S01959.ns2612 ---| IF C<MATCHCI*2,2>MATCH[MATCHWI] NQ BLANK THEN EXACT = FALSE;
Line S01960 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03480 M02S01960.ns2612 ---| END 03481 M01S00017.ns2612 +++| IF C<MATCHCI*2,2>MATCH[MATCHWI] NQ BLANK THEN EXACT = FALSE; 03482 M01S01961.sform +++| END 03483 M01S01962.sform +++| IF EXACT THEN 03484 M01S01963.sform +++| BEGIN # EXACT MATCH FOUND # 03485 M01S01964.sform +++| MATCHCOUNT = -1; # FLAG ENTRY FOUND # 03486 M01S01965.sform +++| MATCHIND = MATCHWI; 03487 M01S01966.sform +++| END 03488 M01S01967.sform +++| ELSE
Line S01968 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2249 |
Seq # *Modification Id* Act ----------------------------+ 03489 M02S01968.ns2249 ---| BEGIN # PARTIAL MATCH FOUND # 03490 M01S00002.ns2249 +++| BEGIN # PARTIAL MATCH FOUND # 03491 M01S01969.sform +++| MATCHCOUNT = MATCHCOUNT + 1; 03492 M01S01970.sform +++| IF MATCHCOUNT EQ 1 THEN MATCHIND = MATCHWI; # IF FIRST ONE # 03493 M01S01971.sform +++| END 03494 M01S01972.sform +++| END 03495 M01S01973.sform +++| END 03496 M01S01974.sform +++| 03497 M01S01975.sform +++|END # FMATCH # 03498 M01S01976.sform +++|CONTROL EJECT; 03499 M01S01977.sform +++| 03500 M01S01978.sform +++|PROC FUNKEY(INPOS,OFFSET,FUNTYPE,ORDINAL,FIELD); 03501 M01S01979.sform +++| 03502 M01S01980.sform +++|# TITLE FUNKEY - PROCESS FUNCTION KEY ACTION. # 03503 M01S01981.sform +++| 03504 M01S01982.sform +++|BEGIN # FUNKEY # 03505 M01S01983.sform +++| 03506 M01S01984.sform +++|# 03507 M01S01985.sform +++|** FUNKEY - PROCESS FUNCTION KEY ACTION. 03508 M01S01986.sform +++|* 03509 M01S01987.sform +++|* THIS PROCEDURE SEARCHES THE FUNCTION LIST TO FIND THE ACTION TO 03510 M01S01988.sform +++|* AKE FOR THE FUNCTION KEY, IF ANY. IT THEN TAKES THE DEFINED 03511 M01S01989.sform +++|* ACTION IF NO SOFT TABS ARE PENDING. IF SOFT TABS ARE PENDING 03512 M01S01990.sform +++|* THE FUNCTION IS IGNORED AND IF THE FUNCTION KEY DOES NOT HAVE 03513 M01S01991.sform +++|* A DEFINED ACTION THE SOFT TAB COUNTER WILL BE INCREMENTED. THE 03514 M01S01992.sform +++|* ONLY EXCEPTION IS A HELP REQUEST WHICH WILL SET HELP PENDING 03515 M01S01993.sform +++|* TO BE PROCESSED AFTER ALL SOFT TABS HAVE BEEN PROCESSED. 03516 M01S01994.sform +++|* 03517 M01S01995.sform +++|* PROC FUNKEY(INPOS,OFFSET,FUNTYPE,ORDINAL,FIELD) 03518 M01S01996.sform +++|* 03519 M01S01997.sform +++|* ENTRY INPOS = X/Y POSITION WHERE FUNCTION WAS ENTERED. 03520 M01S01998.sform +++|* OFFSET = OFFSET INTO FIELD WHERE FUNCTION WAS ENTERED. 03521 M01S01999.sform +++|* FUNTYPE = 24, GENERIC FUNCTION KEY. 03522 M01S02000.sform +++|* = 23, APPLICATION FUNCTION KEY. 03523 M01S02001.sform +++|* ORDINAL = FUNCTION KEY ORDINAL. 03524 M01S02002.sform +++|* FIELD = FIELD WHERE FIELD WAS ENTERED.
Line S02003 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03525 M02S02003.242l642 ---|* SOFTTAB = COUNT OF CURRENT SOFT TABS PENDING. 03526 M01S00825.242l642 +++|* TERSOFTTAB = COUNT OF CURRENT SOFT TABS PENDING. 03527 M01S02004.sform +++|* 03528 M01S02005.sform +++|* EXIT INPOS = NEW X/Y POSITION 03529 M01S02006.sform +++|* FIELD = NEW FIELD POSITION
Line S02007 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03530 M02S02007.242l642 ---|* SOFTTAB = UPDATED SOFT TAB COUNT
Line S02008 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03531 M02S02008.242l642 ---|* SOFTPOS = INPOS IF FIRST SOFT TAB CREATED 03532 M01S00826.242l642 +++|* TERSOFTTAB = UPDATED SOFT TAB COUNT 03533 M01S00827.242l642 +++|* TERSOFTPOS = INPOS IF FIRST SOFT TAB CREATED 03534 M01S02009.sform +++|* TERABNTERM = TRUE, TERMINATE INPUT ABNORMALLY 03535 M01S02010.sform +++|* TERNRMTERM = TRUE, TERMINATE INPUT NORMALLY
Line S02011 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03536 M02S02011.252l678 ---|* TERRETRNOS = TRUE, RETURN CONTROL TO OPERATING SYSTEM
Line S02012 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03537 M02S02012.252l678 ---|* = FALSE, RETURN CONTROL TO APPLICATION 03538 M01S02013.sform +++|* 03539 M01S02014.sform +++|* CALLS FMATCH, MMATCH, TABKEY. 03540 M01S02015.sform +++|* 03541 M01S02016.sform +++|* USES TERABNTERM, TERFUNCGEN, TERFUNCORD, TERFUNCPOS, 03542 M01S02017.sform +++|* TERHELPFLD, TERHELPREQ, TERNRMTERM, TERPENDHLP,
Line S02018 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03543 M02S02018.252l678 ---|* TERRETRNOS, TERSOFTPOS, TERSOFTTAB. 03544 M01S00139.252l678 +++|* TERSOFTPOS, TERSOFTTAB. 03545 M01S02019.sform +++|* 03546 M01S02020.sform +++|* NOTES FLDENTERED, FLDVALID, FLDREWRITE, TERREWFLDS AND VARDATA 03547 M01S02021.sform +++|* UPDATED IF MATCH ADVANCE OCCURRED. SWITCH ACTTYPE MUST 03548 M01S02022.sform +++|* PARALLEL PDU DEFINITION FOR FUNCTION KEY ACTIONS. 03549 M01S02023.sform +++|# 03550 M01S02024.sform +++|ITEM INPOS I; # X/Y POSITION OF CURSOR # 03551 M01S02025.sform +++|ITEM OFFSET I; # OFFSET INTO FIELD # 03552 M01S02026.sform +++|ITEM FUNTYPE I; # APPLICATION OR GENERIC # 03553 M01S02027.sform +++|ITEM ORDINAL I; # FUNCTION KEY ORDINAL # 03554 M01S02028.sform +++|ITEM FIELD I; # INDEX OF FIELD # 03555 M01S02029.sform +++| 03556 M01S02030.sform +++|DEF FH #9#; # ORDINAL FOR HELP AS AN ACTION # 03557 M01S02031.sform +++|DEF FM #10#; # ORDINAL FOR MATCH ADVANCE # 03558 M01S02032.sform +++| 03559 M01S02033.sform +++|ITEM ACTION I; # ORDINAL OF ACTION # 03560 M01S02034.sform +++|ITEM CHAR I; # 12-BIT CHARACTER # 03561 M01S02035.sform +++|ITEM I I; # LOOP COUNTER # 03562 M01S02036.sform +++|ITEM MATCHCOUNT I; # NUMBER OF VALID MATCHES # 03563 M01S02037.sform +++|ITEM MATCHIND I; # INDEX INTO MATCHLIST # 03564 M01S02038.sform +++|ITEM NOTDONE B; # FUNCTION LIST ENTRY NOT FOUND # 03565 M01S02039.sform +++|ITEM SCRPOS I; # SCRATCH POSITION FOR TABKEY # 03566 M01S02040.sform +++|ITEM VARIND I; # INDEX INTO VARLIST # 03567 M01S02041.sform +++| 03568 M01S02042.sform +++|SWITCH ACTTYPE # TYPE OF ACTION TO TAKE # 03569 M01S02043.sform +++| TABSOFTLY, # PROCESS SOFT TAB # 03570 M01S02044.sform +++| NORMTOAPP, # RETURN NORMALLY TO APPLICATION # 03571 M01S02045.sform +++| NORMTONOS, # RETURN NORMALLY TO OPER. SYS. # 03572 M01S02046.sform +++| ABNORTOAPP, # RETURN ABNORMALLY TO APPL. # 03573 M01S02047.sform +++| ABNORTONOS, # RETURN ABNORMALLY TO OPER. SYS # 03574 M01S02048.sform +++| PAGEFORWARD, # PAGE TABLE FORWARD # 03575 M01S02049.sform +++| PAGEBAKWARD, # PAGE TABLE BACKWARD # 03576 M01S02050.sform +++| INSERTROW, # INSERT ROW IN TABLE # 03577 M01S02051.sform +++| DELETEROW, # DELETE ROW IN TABLE # 03578 M01S02052.sform +++| GIVEHELP, # PROVIDE HELP # 03579 M01S02053.sform +++| MATCHADV; # ADVANCE MATCH ENTRY # 03580 M01S02054.sform +++| 03581 M01S02055.sform +++|# SAVE FUNCTION KEY ORDINAL AND KEY TYPE # 03582 M01S02056.sform +++|
Line S02057 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03583 M02S02057.242l642 ---|FUNCORD = ORDINAL; 03584 M01S00828.242l642 +++|TERFUNCORD[0] = ORDINAL; 03585 M01S02058.sform +++|TERFUNCGEN[0] = FUNTYPE EQ SCREENST"GKEY";
Line S02059 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03586 M02S02059.242l642 ---|FUNCPOS = INPOS; 03587 M01S00829.242l642 +++|TERFUNCPOS[0] = INPOS; 03588 M01S02060.sform +++|
Line S02061 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03589 M02S02061.242l642 ---|IF SOFTTAB NQ 0 AND TERFUNCGEN[0] 03590 M01S00830.242l642 +++|IF TERSOFTTAB[0] NQ 0 AND TERFUNCGEN[0] 03591 M01S02062.sform +++| AND ORDINAL EQ GENERICST"GNEXT" THEN 03592 M01S02063.sform +++| BEGIN # NEXT FOLLOWING SOFT TAB # 03593 M01S02064.sform +++| GOTO NOACTION; 03594 M01S02065.sform +++| END 03595 M01S02066.sform +++| 03596 M01S02067.sform +++|IF PANSTRFUN[0] EQ 0 THEN 03597 M01S02068.sform +++| BEGIN # NO FUNCTION LIST # 03598 M01S02069.sform +++| IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GSTOP" THEN 03599 M01S02070.sform +++| BEGIN # DEFAULT STOP ACTION #
Line S02071 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03600 M02S02071.242l642 ---| IF SOFTTAB EQ 0 THEN 03601 M01S00831.242l642 +++| IF TERSOFTTAB[0] EQ 0 THEN 03602 M01S02072.sform +++| BEGIN # IF NO SOFT TABS PENDING # 03603 M01S02073.sform +++| GOTO ABNORTOAPP; 03604 M01S02074.sform +++| END 03605 M01S02075.sform +++| ELSE 03606 M01S02076.sform +++| BEGIN # IF SOFT TABS PENDING # 03607 M01S02077.sform +++| GOTO NOACTION; 03608 M01S02078.sform +++| END 03609 M01S02079.sform +++| END 03610 M01S02080.sform +++| IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GHELP" THEN 03611 M01S02081.sform +++| BEGIN # IF HELP REQUESTED # 03612 M01S02082.sform +++| GOTO GIVEHELP; # PROVIDE HELP # 03613 M01S02083.sform +++| END 03614 M01S02084.sform +++| GOTO NORMTOAPP; # TAKE DEFAULT ACTION # 03615 M01S02085.sform +++| END 03616 M01S02086.sform +++| 03617 M01S02087.sform +++|NOTDONE = TRUE; 03618 M01S02088.sform +++|FOR I = 0 STEP 1 WHILE NOTDONE AND FUNWORD[I] NQ 0 DO 03619 M01S02089.sform +++| BEGIN # LOOK FOR ENTRY IN FUNLIST # 03620 M01S02090.sform +++| IF ((FUNGENERIC[I] AND TERFUNCGEN[0]) 03621 M01S02091.sform +++| OR (NOT FUNGENERIC[I] AND NOT TERFUNCGEN[0])) 03622 M01S02092.sform +++| AND FUNNUMBER[I] EQ ORDINAL THEN 03623 M01S02093.sform +++| BEGIN # FOUND FUNLIST ENTRY # 03624 M01S02094.sform +++| NOTDONE = FALSE; 03625 M01S02095.sform +++| ACTION = FUNACT[I]; # ASSIGN DEFINED ACTION # 03626 M01S02096.sform +++| END 03627 M01S02097.sform +++| END 03628 M01S02098.sform +++| 03629 M01S02099.sform +++|IF NOTDONE THEN 03630 M01S02100.sform +++| BEGIN # NOT IN LIST # 03631 M01S02101.sform +++| IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GHELP" THEN 03632 M01S02102.sform +++| BEGIN 03633 M01S02103.sform +++| GOTO GIVEHELP; 03634 M01S02104.sform +++| END 03635 M01S02105.sform +++| ELSE GOTO TABSOFTLY; # PROCESS SOFT TAB # 03636 M01S02106.sform +++| END 03637 M01S02107.sform +++|IF TERFUNCGEN[0] AND ORDINAL EQ GENERICST"GHELP" 03638 M01S02108.sform +++| AND FIELD NQ -1 THEN 03639 M01S02109.sform +++| BEGIN # HELP KEY ENTERED IN A FIELD # 03640 M01S02110.sform +++| IF VARHSOS[FLDVARORD[FIELD]] NQ 0 THEN 03641 M01S02111.sform +++| BEGIN # HELP STRING DEFINED # 03642 M01S02112.sform +++| GOTO GIVEHELP; # GIVE HELP # 03643 M01S02113.sform +++| END 03644 M01S02114.sform +++| END
Line S02115 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03645 M02S02115.242l642 ---|IF SOFTTAB NQ 0 AND ACTION NQ FM AND ACTION NQ FH THEN 03646 M01S00832.242l642 +++|IF TERSOFTTAB[0] NQ 0 AND ACTION NQ FM AND ACTION NQ FH THEN 03647 M01S02116.sform +++| BEGIN # IF SOFT TABS PENDING # 03648 M01S02117.sform +++| GOTO NOACTION; # IGNORE UNLESS MATCH OR HELP # 03649 M01S02118.sform +++| END 03650 M01S02119.sform +++|ELSE 03651 M01S02120.sform +++| BEGIN # NO SOFT TABS PENDING # 03652 M01S02121.sform +++| GOTO ACTTYPE[ACTION]; # GO TO ASSIGNED ACTION # 03653 M01S02122.sform +++| END 03654 M01S02123.sform +++| 03655 M01S02124.sform +++|PAGEFORWARD: # CURRENTLY A NO-OP # 03656 M01S02125.sform +++|PAGEBAKWARD: # CURRENTLY A NO-OP # 03657 M01S02126.sform +++|INSERTROW: # CURRENTLY A NO-OP # 03658 M01S02127.sform +++|DELETEROW: # CURRENTLY A NO-OP # 03659 M01S02128.sform +++| 03660 M01S02129.sform +++| TERNRMTERM[0] = FALSE; 03661 M01S02130.sform +++| TERABNTERM[0] = FALSE;
Line S02131 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03662 M02S02131.252l678 ---| TERRETRNOS[0] = FALSE; 03663 M01S02132.sform +++| RETURN; 03664 M01S02133.sform +++| 03665 M01S02134.sform +++|TABSOFTLY: # PROCESS SOFT TAB # 03666 M01S02135.sform +++|
Line S02136 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03667 M02S02136.242l642 ---| IF SOFTTAB EQ 0 THEN SOFTPOS = INPOS;
Line S02137 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03668 M02S02137.242l642 ---| SOFTTAB = SOFTTAB + 1; # INCREMENT TAB COUNT # 03669 M01S00833.242l642 +++| IF TERSOFTTAB[0] EQ 0 THEN TERSOFTPOS[0] = INPOS; 03670 M01S00834.242l642 +++| TERSOFTTAB[0] = TERSOFTTAB[0] + 1; # INCREMENT TAB COUNT # 03671 M01S02138.sform +++| 03672 M01S02139.sform +++|NOACTION: # NO ACTION TO OCCUR # 03673 M01S02140.sform +++| 03674 M01S02141.sform +++| TERNRMTERM[0] = FALSE; 03675 M01S02142.sform +++| TERABNTERM[0] = FALSE;
Line S02143 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03676 M02S02143.252l678 ---| TERRETRNOS[0] = FALSE; 03677 M01S02144.sform +++| RETURN; 03678 M01S02145.sform +++| 03679 M01S02146.sform +++|NORMTOAPP: # NORMAL TERMINATION AND # 03680 M01S02147.sform +++| # RETURN TO APPLICATION # 03681 M01S02148.sform +++| TERNRMTERM[0] = TRUE; 03682 M01S02149.sform +++| TERABNTERM[0] = FALSE;
Line S02150 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03683 M02S02150.252l678 ---| TERRETRNOS[0] = FALSE; 03684 M01S02151.sform +++| RETURN; 03685 M01S02152.sform +++| 03686 M01S02153.sform +++|NORMTONOS: # NORMAL TERMINATION AND RETURN # 03687 M01S02154.sform +++| # TO OPERATING SYSTEM # 03688 M01S02155.sform +++| TERNRMTERM[0] = TRUE; 03689 M01S02156.sform +++| TERABNTERM[0] = FALSE;
Line S02157 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03690 M02S02157.252l678 ---| TERRETRNOS[0] = TRUE; 03691 M01S02158.sform +++| RETURN; 03692 M01S02159.sform +++| 03693 M01S02160.sform +++|ABNORTOAPP: # ABNORMAL TERMINATION AND # 03694 M01S02161.sform +++| # RETURN TO APPLICATION # 03695 M01S02162.sform +++| TERNRMTERM[0] = FALSE; 03696 M01S02163.sform +++| TERABNTERM[0] = TRUE;
Line S02164 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03697 M02S02164.252l678 ---| TERRETRNOS[0] = FALSE; 03698 M01S02165.sform +++| RETURN; 03699 M01S02166.sform +++| 03700 M01S02167.sform +++|ABNORTONOS: # ABNORMAL TERMINATION AND # 03701 M01S02168.sform +++| # RETURN TO OPERATING SYSTEM # 03702 M01S02169.sform +++| TERNRMTERM[0] = FALSE; 03703 M01S02170.sform +++| TERABNTERM[0] = TRUE;
Line S02171 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 252l678 |
Seq # *Modification Id* Act ----------------------------+ 03704 M02S02171.252l678 ---| TERRETRNOS[0] = TRUE; 03705 M01S02172.sform +++| RETURN; 03706 M01S02173.sform +++| 03707 M01S02174.sform +++|GIVEHELP: # PROVIDE HELP # 03708 M01S02175.sform +++|
Line S02176 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03709 M02S02176.242l642 ---| IF SOFTTAB NQ 0 THEN 03710 M01S00835.242l642 +++| IF TERSOFTTAB[0] NQ 0 THEN 03711 M01S02177.sform +++| BEGIN # IF SOFT TABS PENDING # 03712 M01S02178.sform +++| TERPENDHLP[0] = TRUE; # SET HELP PENDING FLAG # 03713 M01S02179.sform +++| END 03714 M01S02180.sform +++| ELSE 03715 M01S02181.sform +++| BEGIN # NO SOFT TABS PENDING # 03716 M01S02182.sform +++| IF FIELD EQ -1 THEN 03717 M01S02183.sform +++| BEGIN 03718 M01S02184.sform +++| TABKEY(SCREENST"FTAB",INPOS,FIELD,SCRPOS); # TAB TO NEXT FIELD # 03719 M01S02185.sform +++| IF FIELD EQ -1 THEN TABKEY(SCREENST"FTAB",SCRPOS,FIELD,SCRPOS); 03720 M01S02186.sform +++| TERHELPFLD[0] = FIELD; 03721 M01S02187.sform +++| FIELD = -1; 03722 M01S02188.sform +++| END 03723 M01S02189.sform +++| ELSE 03724 M01S02190.sform +++| BEGIN # GIVE HELP FOR THIS FIELD # 03725 M01S02191.sform +++| TERHELPFLD[0] = FIELD; 03726 M01S02192.sform +++| END 03727 M01S02193.sform +++| TERHELPREQ[0] = TRUE; 03728 M01S02194.sform +++| END 03729 M01S02195.sform +++| RETURN; 03730 M01S02196.sform +++| 03731 M01S02197.sform +++|MATCHADV: # ADVANCE MATCH ENTRY # 03732 M01S02198.sform +++|
Line S02199 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03733 M02S02199.242l642 ---| IF SOFTTAB NQ 0 OR NOT VALIDFIELD THEN GOTO TABSOFTLY; 03734 M01S00836.242l642 +++| IF TERSOFTTAB[0] NQ 0 OR NOT VALIDFIELD THEN GOTO TABSOFTLY; 03735 M01S02200.sform +++| IF FIELD EQ -1 THEN GOTO TABSOFTLY; 03736 M01S02201.sform +++| VARIND = FLDVARORD[FIELD]; 03737 M01S02202.sform +++| IF (NOT VARVALM[VARIND]) OR (VARVALOS[VARIND] EQ 0) 03738 M01S02203.sform +++| THEN GOTO TABSOFTLY; 03739 M01S02204.sform +++| FMATCH(FIELD,MATCHIND,MATCHCOUNT);
Line S02205 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 03740 M02S02205.ns2612 ---| MATCHIND = MATCHIND + 1; # ADVANCE ENTRY OR START AT 0 # 03741 M01S00018.ns2612 +++| IF PANVERSION[0] GR 0 THEN 03742 M01S00019.ns2612 +++| BEGIN # IF ENTRIES CAN BE ANY LENGTH # 03743 M01S00020.ns2612 +++| MATCHIND = MATCHIND + (FLDLENGTH[FIELD]+9)/10; 03744 M01S00021.ns2612 +++| END 03745 M01S00022.ns2612 +++| ELSE 03746 M01S00023.ns2612 +++| BEGIN # IF ENTRIES ONLY 10 CHARACTERS # 03747 M01S00024.ns2612 +++| MATCHIND = MATCHIND + 1; 03748 M01S00025.ns2612 +++| END 03749 M01S02206.sform +++| IF MATCHWORD[MATCHIND] EQ 0 THEN MATCHIND = 0; # IF WRAPAROUND # 03750 M01S02207.sform +++| MMATCH(MATCHIND,FIELD); # MOVE MATCH ENTRY TO FIELD # 03751 M01S02208.sform +++| RETURN; 03752 M01S02209.sform +++| 03753 M01S02210.sform +++|END # FUNKEY# 03754 M01S02211.sform +++|CONTROL EJECT; 03755 M01S02212.sform +++| 03756 M01S02213.sform +++|PROC GETADD(PANELNAME,PANELADDR,PLTINDEX); 03757 M01S02214.sform +++| 03758 M01S02215.sform +++|# TITLE GETADD - GETS PANEL ADDRESS. # 03759 M01S02216.sform +++| 03760 M01S02217.sform +++|BEGIN # GETADD # 03761 M01S02218.sform +++| 03762 M01S02219.sform +++|# 03763 M01S02220.sform +++|** GETADD - GET ADDRESS. 03764 M01S02221.sform +++|* 03765 M01S02222.sform +++|* THIS PROCEDURE GETS THE MEMORY ADDRESS FOR THE SPECIFIED 03766 M01S02223.sform +++|* PANEL FROM THE PANEL LOAD TABLE. IF THE PANEL IS NOT IN 03767 M01S02224.sform +++|* THE PANEL LOAD TABLE OR HAS NOT BEEN OPENED FOR USE THEN 03768 M01S02225.sform +++|* A DAYFILE MESSAGE WILL BE ISSUED AND CONTROL WILL BE RE- 03769 M01S02226.sform +++|* TURNED TO THE OPERATING SYSTEM. 03770 M01S02227.sform +++|* 03771 M01S02228.sform +++|* PROC GETADD(PANELNAME,PANELADDR,PLTINDEX) 03772 M01S02229.sform +++|* 03773 M01S02230.sform +++|* ENTRY PANELNAME = THE NAME OF THE PANEL. 03774 M01S02231.sform +++|* 03775 M01S02232.sform +++|* EXIT PANELADDR = THE ADDRESS OF THE PANEL RECORD. 03776 M01S02233.sform +++|* TO O.S. IF THE ADDRESS IS NOT FOUND 03777 M01S02234.sform +++|* OR THE PANEL IS NOT OPEN. 03778 M01S02235.sform +++|* PLTINDEX = THE PANEL LOAD TABLE INDEX FOR THE PANEL. 03779 M01S02236.sform +++|* 03780 M01S02237.sform +++|* CALLS ERRMSG. 03781 M01S02238.sform +++|* 03782 M01S02239.sform +++|* NOTES IF THE PANEL IS NOT IN THE PANEL LOAD TABLE THEN 03783 M01S02240.sform +++|* THE APPLICATION HAS NOT OPENED THE PANEL FOR USE 03784 M01S02241.sform +++|* OR HAS IGNORED AN ERROR RETURN FROM SFOPEN AFTER 03785 M01S02242.sform +++|* ATTEMPTING TO DO SO. IF THE PANEL IS IN THE LOAD 03786 M01S02243.sform +++|* TABLE BUT NOT OPEN IT IS A STATICALLY LOADED PANEL 03787 M01S02244.sform +++|* THAT THE APPLICATION HAS NOT YET OPENED. IN EITHER 03788 M01S02245.sform +++|* CASE PROCEDURE ERRMSG IS CALLED TO ISSUE A DAYFILE 03789 M01S02246.sform +++|* MESSAGE AND RETURN CONTROL TO THE OPERATING SYSTEM. 03790 M01S02247.sform +++|# 03791 M01S02248.sform +++|ITEM PANELNAME C(7); # PANEL NAME # 03792 M01S02249.sform +++|ITEM PANELADDR I; # PANEL ADDRESS # 03793 M01S02250.sform +++|ITEM PLTINDEX I; # PANEL LOAD TABLE INDEX # 03794 M01S02251.sform +++| 03795 M01S02252.sform +++|ITEM CHARINDEX I; # CHARACTER INDEX # 03796 M01S02253.sform +++|ITEM FATAL B = TRUE; # FATAL ERROR # 03797 M01S02254.sform +++|ITEM INDEX I; # INDEX INTO PANEL LOAD TABLE # 03798 M01S02255.sform +++|ITEM MSG C(25) = " NOT OPENED. "; # ERROR MSG. # 03799 M01S02256.sform +++|ITEM PNAME C(6); # PROCEDURE NAME # 03800 M01S02257.sform +++| 03801 M01S02258.sform +++|PANELADDR = 0; 03802 M01S02259.sform +++|FOR INDEX = 1 STEP 1 WHILE PANELADDR EQ 0 03803 M01S02260.sform +++| AND INDEX LQ PLTNUMENT[0] DO 03804 M01S02261.sform +++| BEGIN # FIND SPECIFIED PANEL # 03805 M01S02262.sform +++| IF PLTENAME[INDEX] EQ PANELNAME 03806 M01S02263.sform +++| AND PLTOPENFLG[INDEX] THEN 03807 M01S02264.sform +++| BEGIN # IF SPECIFIED PANEL FOUND # 03808 M01S02265.sform +++| PANELADDR = PLTADDR[INDEX]; # RETURN ADDRESS # 03809 M01S02266.sform +++| PLTINDEX = INDEX; 03810 M01S02267.sform +++| RETURN; 03811 M01S02268.sform +++| END 03812 M01S02269.sform +++| END 03813 M01S02270.sform +++| 03814 M01S02271.sform +++|IF TERSHOWFLG[0] THEN 03815 M01S02272.sform +++| BEGIN # IF SFSSHO CALL # 03816 M01S02273.sform +++| PNAME = "SFSSHO"; 03817 M01S02274.sform +++| END 03818 M01S02275.sform +++|ELSE 03819 M01S02276.sform +++| BEGIN # IF SFSREA CALL # 03820 M01S02277.sform +++| IF TERREADFLG[0] THEN 03821 M01S02278.sform +++| BEGIN 03822 M01S02279.sform +++| PNAME = "SFSREA"; 03823 M01S02280.sform +++| END 03824 M01S02281.sform +++| ELSE # SFSWRI CALL # 03825 M01S02282.sform +++| BEGIN 03826 M01S02283.sform +++| PNAME = "SFSWRI"; 03827 M01S02284.sform +++| END 03828 M01S02285.sform +++| END 03829 M01S02286.sform +++|ERRMSG(PANELNAME,PNAME,MSG,FATAL); # ISSUE MESSAGE AND ABORT # 03830 M01S02287.sform +++| 03831 M01S02288.sform +++|END # GETADD # 03832 M01S02289.sform +++|CONTROL EJECT; 03833 M01S02290.sform +++| 03834 M01S02291.sform +++|PROC GETNUM(FLDIND,CHARPOS,VALUE,NUMDIG); 03835 M01S02292.sform +++| 03836 M01S02293.sform +++|# TITLE GETNUM - GET NUMERIC VALUE OF SUBFIELD. # 03837 M01S02294.sform +++| 03838 M01S02295.sform +++|BEGIN # GETNUM # 03839 M01S02296.sform +++| 03840 M01S02297.sform +++|# 03841 M01S02298.sform +++|** GETNUM - GET NUMERIC VALUE OF SUBFIELD. 03842 M01S02299.sform +++|* 03843 M01S02300.sform +++|* GETNUM GETS THE NUMERIC VALUE OF A SUBFIELD STARTING AT 03844 M01S02301.sform +++|* CHARPOS AND ENDING AT THE FIRST NON-NUMERIC INPUT OR AT 03845 M01S02302.sform +++|* THE END OF THE FIELD. 03846 M01S02303.sform +++|* 03847 M01S02304.sform +++|* PROC GETNUM(FLDIND,CHARPOS,VALUE,NUMDIG) 03848 M01S02305.sform +++|* 03849 M01S02306.sform +++|* ENTRY FLDIND = INDEX IN FLDLIST. 03850 M01S02307.sform +++|* CHARPOS = STARTING CHARACTER POSITION IN FIELD. 03851 M01S02308.sform +++|* VALUE = STARTING VALUE. 03852 M01S02309.sform +++|* 03853 M01S02310.sform +++|* EXIT CHARPOS = ENDING CHARACTER POSITION IN FIELD. 03854 M01S02311.sform +++|* VALUE = ENDING VALUE. 03855 M01S02312.sform +++|* NUMDIG = NUMBER OF DIGITS IN SUBFIELD. 03856 M01S02313.sform +++|# 03857 M01S02314.sform +++|ITEM FLDIND I; # INDEX IN FLDLIST # 03858 M01S02315.sform +++|ITEM CHARPOS I; # POSITION OF CHARACTER IN FIELD # 03859 M01S02316.sform +++|ITEM VALUE I; # NUMERIC VALUE OF SUBFIELD # 03860 M01S02317.sform +++|ITEM NUMDIG I; # NUMBER OF DIGITS IN SUBFIELD # 03861 M01S02318.sform +++| 03862 M01S02319.sform +++|ITEM CHAR I; # INPUT CHARACTER # 03863 M01S02320.sform +++|ITEM SAMESUBFLD B; # STILL IN SAME SUBFIELD # 03864 M01S02321.sform +++| 03865 M01S02322.sform +++|SAMESUBFLD = TRUE; 03866 M01S02323.sform +++|NUMDIG = 0; 03867 M01S02324.sform +++| 03868 M01S02325.sform +++|WHYLE SAMESUBFLD AND CHARPOS LQ FLDLENGTH[FLDIND] -1 DO 03869 M01S02326.sform +++| BEGIN 03870 M01S02327.sform +++| CHAR = NEXTCHAR(FLDIND,CHARPOS); 03871 M01S02328.sform +++| IF CHAR GQ ZEROCH AND CHAR LQ NINECH THEN 03872 M01S02329.sform +++| BEGIN # IF CHARACTER IS NUMERIC # 03873 M01S02330.sform +++| VALUE = 10 * VALUE + (CHAR LXR ZEROCH); 03874 M01S02331.sform +++| NUMDIG = NUMDIG + 1; 03875 M01S02332.sform +++| CHARPOS = CHARPOS + 1; 03876 M01S02333.sform +++| END 03877 M01S02334.sform +++| ELSE 03878 M01S02335.sform +++| BEGIN # END OF SUBFIELD # 03879 M01S02336.sform +++| SAMESUBFLD = FALSE; 03880 M01S02337.sform +++| END 03881 M01S02338.sform +++| END 03882 M01S02339.sform +++| 03883 M01S02340.sform +++|END # GETNUM # 03884 M01S02341.sform +++|CONTROL EJECT; 03885 M01S02342.sform +++| 03886 M01S02343.sform +++|PROC GFIELD(VARNAME,USEROW,FLDIND); 03887 M01S02344.sform +++| 03888 M01S02345.sform +++|# TITLE GFIELD - GET FIELD INDEX. # 03889 M01S02346.sform +++| 03890 M01S02347.sform +++|BEGIN # GFIELD # 03891 M01S02348.sform +++| 03892 M01S02349.sform +++|# 03893 M01S02350.sform +++|** GFIELD - GET FIELD INDEX. 03894 M01S02351.sform +++|* 03895 M01S02352.sform +++|* THIS PROCEDURE GETS THE FIELD INDEX FOR THE VARIABLE VARNAME. 03896 M01S02353.sform +++|* 03897 M01S02354.sform +++|* PROC GFIELD(VARNAME,USEROW,FLDIND) 03898 M01S02355.sform +++|* 03899 M01S02356.sform +++|* ENTRY VARNAME = VARIABLE NAME OF FIELD.
Line S02357 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03900 M02S02357.242l642 ---|* USEROW = TRUE, USE CURSORROW. 03901 M01S00837.242l642 +++|* USEROW = TRUE, USE TERCURSROW. 03902 M01S02358.sform +++|* = FALSE, USE ARRCURROW. 03903 M01S02359.sform +++|* 03904 M01S02360.sform +++|* EXIT FLDIND = FIELD INDEX. 03905 M01S02361.sform +++|* = -1 IF NOT FOUND. 03906 M01S02362.sform +++|# 03907 M01S02363.sform +++|ITEM VARNAME C(7); # VARIABLE NAME OF FIELD #
Line S02364 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03908 M02S02364.242l642 ---|ITEM USEROW B; # USE CURSORROW # 03909 M01S00838.242l642 +++|ITEM USEROW B; # USE TERCURSROW # 03910 M01S02365.sform +++|ITEM FLDIND I; # POINTER TO FIELD LIST # 03911 M01S02366.sform +++| 03912 M01S02367.sform +++|ITEM ARRAYORD I; # ARRAY ORDINAL # 03913 M01S02368.sform +++|ITEM FOUND B; # FIELD HAS BEEN FOUND # 03914 M01S02369.sform +++|ITEM I I; # LOOP COUNTER # 03915 M01S02370.sform +++|ITEM ROWNUMBER I; # ROW NUMBER # 03916 M01S02371.sform +++|ITEM VARIND I; # POINTER TO VARIABLE LIST # 03917 M01S02372.sform +++| 03918 M01S02373.sform +++|FLDIND = -1; 03919 M01S02374.sform +++|FOUND = FALSE; 03920 M01S02375.sform +++| 03921 M01S02376.sform +++|FOR I = 0 STEP 1 WHILE VARTYPE[I] NQ 0 AND NOT FOUND DO 03922 M01S02377.sform +++| BEGIN # LOOK FOR VARIABLE VARNAME # 03923 M01S02378.sform +++| IF VARNME[I] EQ VARNAME THEN 03924 M01S02379.sform +++| BEGIN # FOUND SPECIFIED VARIABLE # 03925 M01S02380.sform +++| FOUND = TRUE; 03926 M01S02381.sform +++| VARIND = I; 03927 M01S02382.sform +++| END 03928 M01S02383.sform +++| END 03929 M01S02384.sform +++| 03930 M01S02385.sform +++|IF FOUND THEN 03931 M01S02386.sform +++| BEGIN 03932 M01S02387.sform +++| ARRAYORD = VARARRORD[VARIND]; 03933 M01S02388.sform +++| IF ARRAYORD NQ 0 THEN 03934 M01S02389.sform +++| BEGIN # ARRAY MEMBER # 03935 M01S02390.sform +++| ROWNUMBER = 0; 03936 M01S02391.sform +++| IF USEROW THEN
Line S02392 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03937 M02S02392.242l642 ---| BEGIN # USE CURSORROW #
Line S02393 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform6 |
M03 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03938 M03S02393.242l642 ---| IF TERCURSSET[0] AND CURSORROW LS ARRNUMROWS[ARRAYORD] THEN
Line S00002 Modification History | |
---|---|
M01 (Added by) | sform6 |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03939 M02S00002.242l642 ---| IF TERCURSSET[0] AND CURSORROW LS ARRNUMROWS[ARRAYORD-1] THEN 03940 M01S00839.242l642 +++| BEGIN # USE TERCURSROW # 03941 M01S00840.242l642 +++| IF TERCURSSET[0] AND TERCURSROW[0] LS ARRNUMROWS[ARRAYORD-1] THEN 03942 M01S02394.sform +++| BEGIN # VALID ROW NUMBER #
Line S02395 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 03943 M02S02395.242l642 ---| ROWNUMBER = CURSORROW; 03944 M01S00841.242l642 +++| ROWNUMBER = TERCURSROW[0]; 03945 M01S02396.sform +++| END 03946 M01S02397.sform +++| END 03947 M01S02398.sform +++| ELSE 03948 M01S02399.sform +++| BEGIN # USE CURRENT ROW #
Line S02400 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform6 |
Seq # *Modification Id* Act ----------------------------+ 03949 M02S02400.sform6 ---| ROWNUMBER = ARRCURROW[ARRAYORD]; 03950 M01S00003.sform6 +++| ROWNUMBER = ARRCURROW[ARRAYORD-1]; 03951 M01S02401.sform +++| END
Line S02402 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform6 |
Seq # *Modification Id* Act ----------------------------+ 03952 M02S02402.sform6 ---| VARIND = VARIND + ARRNUMVARS[ARRAYORD]*ROWNUMBER; 03953 M01S00004.sform6 +++| VARIND = VARIND + ARRNUMVARS[ARRAYORD-1]*ROWNUMBER; 03954 M01S02403.sform +++| END 03955 M01S02404.sform +++| FLDIND = VARFLDNUM[VARIND] - 1; # ADJUST PDU VALUE # 03956 M01S02405.sform +++| END 03957 M01S02406.sform +++| 03958 M01S02407.sform +++|END # GFIELD # 03959 M01S02408.sform +++|CONTROL EJECT; 03960 M01S02409.sform +++| 03961 M01S02410.sform +++|PROC IRANGE(FLDIND,VALUE,EVALUE); 03962 M01S02411.sform +++| 03963 M01S02412.sform +++|# TITLE IRANGE - RANGE VALIDATION FOR INTEGER VARIABLES. # 03964 M01S02413.sform +++| 03965 M01S02414.sform +++|BEGIN # IRANGE # 03966 M01S02415.sform +++| 03967 M01S02416.sform +++|# 03968 M01S02417.sform +++|** IRANGE - RANGE VALIDATION FOR INTEGER VARIABLES. 03969 M01S02418.sform +++|* 03970 M01S02419.sform +++|* THIS PROCEDURE VALIDATES THAT INPUT TO THE FIELD POINTED TO 03971 M01S02420.sform +++|* BY FLDIND IS WITHIN THE RANGE SPECIFIED IN THE PANEL RECORD. 03972 M01S02421.sform +++|* 03973 M01S02422.sform +++|* PROC IRANGE(FLDIND,VALUE,EVALUE) 03974 M01S02423.sform +++|* 03975 M01S02424.sform +++|* ENTRY FLDIND = INDEX OF CURRENT FIELD IN FLDLIST. 03976 M01S02425.sform +++|* VALUE = THE INTEGER VALUE OF THE INPUT. 03977 M01S02426.sform +++|* EVALUE = THE EXPONENT VALUE OF THE INPUT 03978 M01S02427.sform +++|* 03979 M01S02428.sform +++|* EXIT FLDVALID[FLDIND] = FALSE, IF INPUT IS INVALID. 03980 M01S02429.sform +++|# 03981 M01S02430.sform +++|ITEM FLDIND I; # INDEX OF VARIABLE TO VALIDATE # 03982 M01S02431.sform +++|ITEM VALUE I; # INTEGER VALUE OF INPUT # 03983 M01S02432.sform +++|ITEM EVALUE I; # EXPONENT VALUE OF INPUT # 03984 M01S02433.sform +++| 03985 M01S02434.sform +++|ITEM MAXVAL I; # MAXIMUM ALLOWED VALUE # 03986 M01S02435.sform +++|ITEM MINVAL I; # MINIMUM ALLOWED VALUE # 03987 M01S02436.sform +++|ITEM OFFSET I; # OFFSET OF VALIDATION IN RECORD # 03988 M01S02437.sform +++|ITEM VARIND I; # INDEX INTO VARLIST # 03989 M01S02438.sform +++| 03990 M01S02439.sform +++|VARIND = FLDVARORD[FLDIND]; 03991 M01S02440.sform +++|OFFSET = VARVALOS[VARIND]; 03992 M01S02441.sform +++|MINVAL = RECWORDU[OFFSET]; # MINIMUM VALID VALUE # 03993 M01S02442.sform +++|MAXVAL = RECWORDU[OFFSET + 1]; # MAXIMUM VALID VALUE # 03994 M01S02443.sform +++| 03995 M01S02444.sform +++|IF VARPICTYPE[FLDVARORD[FLDIND]] EQ FORMTYPE"$" THEN 03996 M01S02445.sform +++| BEGIN # WEIGHT CURRENCY INPUT # 03997 M01S02446.sform +++| IF EVALUE EQ 0 THEN 03998 M01S02447.sform +++| BEGIN 03999 M01S02448.sform +++| VALUE = VALUE * 100; 04000 M01S02449.sform +++| END 04001 M01S02450.sform +++| ELSE 04002 M01S02451.sform +++| BEGIN 04003 M01S02452.sform +++| IF EVALUE EQ -1 THEN VALUE = VALUE * 10; 04004 M01S02453.sform +++| END 04005 M01S02454.sform +++| END 04006 M01S02455.sform +++| 04007 M01S02456.sform +++|IF VALUE LS MINVAL OR VALUE GR MAXVAL THEN 04008 M01S02457.sform +++| BEGIN # IF VALUE OUTSIDE OF RANGE # 04009 M01S02458.sform +++| FLDVALID[FLDIND] = FALSE; 04010 M01S02459.sform +++| END 04011 M01S02460.sform +++| 04012 M01S02461.sform +++|END # IRANGE # 04013 M01S02462.sform +++|CONTROL EJECT; 04014 M01S02463.sform +++| 04015 M01S02464.sform +++|PROC MATCHV(FLDIND); 04016 M01S02465.sform +++| 04017 M01S02466.sform +++|# TITLE MATCHV - MATCH VALIDATION. # 04018 M01S02467.sform +++| 04019 M01S02468.sform +++|BEGIN # MATCHV # 04020 M01S02469.sform +++| 04021 M01S02470.sform +++|# 04022 M01S02471.sform +++|** MATCHV - MATCH VALIDATION. 04023 M01S02472.sform +++|* 04024 M01S02473.sform +++|* THIS PROCEDURE PERFORMS MATCH VALIDATION FOR THE VARIABLE 04025 M01S02474.sform +++|* USING THE MATCH LIST IN THE PANEL RECORD. 04026 M01S02475.sform +++|* 04027 M01S02476.sform +++|* PROC MATCHV(FLDIND) 04028 M01S02477.sform +++|* 04029 M01S02478.sform +++|* ENTRY FLDIND = POINTER INTO FLDLIST OF CURRENT FIELD. 04030 M01S02479.sform +++|* 04031 M01S02480.sform +++|* EXIT FLDVALID[FLDIND] = FALSE, IF INPUT IS INVALID. 04032 M01S02481.sform +++|* 04033 M01S02482.sform +++|* CALLS FMATCH, MMATCH. 04034 M01S02483.sform +++|# 04035 M01S02484.sform +++|ITEM FLDIND I; # INDEX OF FIELD IN FLDLIST # 04036 M01S02485.sform +++| 04037 M01S02486.sform +++|ITEM MATCHIND I; # INDEX INTO MATCHLIST # 04038 M01S02487.sform +++|ITEM MATCHCOUNT I; # NUMBER OF VALID MATCHES # 04039 M01S02488.sform +++| 04040 M01S02489.sform +++|IF VARVALOS[FLDVARORD[FLDIND]] 04041 M01S02490.sform +++| EQ 0 THEN RETURN; # IF NO VALIDATION REQUIRED # 04042 M01S02491.sform +++| 04043 M01S02492.sform +++|FMATCH(FLDIND,MATCHIND,MATCHCOUNT); # FIND MATCH # 04044 M01S02493.sform +++| 04045 M01S02494.sform +++|IF ABS(MATCHCOUNT) NQ 1 THEN 04046 M01S02495.sform +++| BEGIN # NO MATCH OR TOO MANY MATCHES # 04047 M01S02496.sform +++| FLDVALID[FLDIND] = FALSE; 04048 M01S02497.sform +++| END 04049 M01S02498.sform +++|ELSE 04050 M01S02499.sform +++| BEGIN # EXACT OR PARTIAL MATCH FOUND # 04051 M01S02500.sform +++| MMATCH(MATCHIND,FLDIND); # RETURN IDENTICAL MATCH VALUE # 04052 M01S02501.sform +++| END 04053 M01S02502.sform +++| 04054 M01S02503.sform +++|END # MATCHV # 04055 M01S02504.sform +++|CONTROL EJECT; 04056 M01S02505.sform +++| 04057 M01S02506.sform +++|PROC MCLEAN(MCOUNT,MSGFIT); 04058 M01S02507.sform +++| 04059 M01S02508.sform +++|# TITLE MCLEAN - MESSAGE CLEAN. # 04060 M01S02509.sform +++| 04061 M01S02510.sform +++|BEGIN # MCLEAN # 04062 M01S02511.sform +++| 04063 M01S02512.sform +++|# 04064 M01S02513.sform +++|** MCLEAN - MESSAGE CLEAN. 04065 M01S02514.sform +++|* 04066 M01S02515.sform +++|* THIS PROCEDURE CLEANS THE MESSAGE AREA. 04067 M01S02516.sform +++|* 04068 M01S02517.sform +++|* PROC MCLEAN(MCOUNT,MSGFIT) 04069 M01S02518.sform +++|* 04070 M01S02519.sform +++|* EXIT MCOUNT = THE LENGTH OF THE MESSAGE AREA. 04071 M01S02520.sform +++|* MSGFIT = TRUE, IF LONGEST MESSAGE WILL FIT. 04072 M01S02521.sform +++|* 04073 M01S02522.sform +++|* CALLS VDTCHR, VDTCLL, VDTPOS, VDTSAM. 04074 M01S02523.sform +++|* 04075 M01S02524.sform +++|* USES TERMESWRIT. 04076 M01S02525.sform +++|# 04077 M01S02526.sform +++|ITEM MCOUNT I; # LENGTH OF MESSAGE AREA # 04078 M01S02527.sform +++|ITEM MSGFIT B; # TRUNCATION FLAG # 04079 M01S02528.sform +++| 04080 M01S02529.sform +++|ITEM I I; # LOOP VARIABLE # 04081 M01S02530.sform +++|
Line S02531 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 04082 M02S02531.242l642 ---|IF PANMSGLEN[0] LS NUMCOLS THEN 04083 M01S00842.242l642 +++|IF PANMSGLEN[0] LS TERNUMCOLS[0] THEN 04084 M01S02532.sform +++| BEGIN # IF LONGEST MESSAGE FITS # 04085 M01S02533.sform +++| MSGFIT = TRUE; 04086 M01S02534.sform +++| MCOUNT = PANMSGLEN[0] -1; 04087 M01S02535.sform +++| IF MCOUNT LS 24 THEN MCOUNT = 24; # LONGEST SMF MESSAGE # 04088 M01S02536.sform +++| END 04089 M01S02537.sform +++|ELSE 04090 M01S02538.sform +++| BEGIN # USER HELP MAY NEED TRUNCATION # 04091 M01S02539.sform +++| MSGFIT = FALSE;
Line S02540 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | 242l642 |
Seq # *Modification Id* Act ----------------------------+ 04092 M02S02540.242l642 ---| MCOUNT = NUMCOLS -1; 04093 M01S00843.242l642 +++| MCOUNT = TERNUMCOLS[0] - 1; 04094 M01S02541.sform +++| END 04095 M01S02542.sform +++| 04096 M01S00001.sform5 +++|VDTSAM(ATTMASK[0]); # SET MESSAGE ATTRIBUTES #
Line S02543 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2346 |
Seq # *Modification Id* Act ----------------------------+ 04097 M02S02543.ns2346 ---|IF TERPROTECT[0] THEN
Line S02544 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2346 |
Seq # *Modification Id* Act ----------------------------+ 04098 M02S02544.ns2346 ---| BEGIN # IF TERMINAL HAS PROTECT # 04099 M01S00009.ns2346 +++|IF TERTABPROT[0] THEN 04100 M01S00010.ns2346 +++| BEGIN # IF TABS TO UNPROTECTED TRUE # 04101 M01S02545.sform +++| VDTPOS(0,0); # POSITION TO MESSAGE AREA # 04102 M01S02546.sform +++| FOR I = 0 STEP 1 UNTIL MCOUNT DO
Line S02547 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform5 |
Seq # *Modification Id* Act ----------------------------+ 04103 M02S02547.sform5 ---| FOR I = 0 STEP 1 UNTIL MCOUNT - 1 DO 04104 M01S02548.sform +++| BEGIN # BLANK OUT MESSAGE AREA # 04105 M01S02549.sform +++| VDTCHR(BLANK); 04106 M01S02550.sform +++| END
Line S02551 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform5 |
Seq # *Modification Id* Act ----------------------------+ 04107 M02S02551.sform5 ---| VDTPOS(0,0); # REPOSITION # 04108 M01S02552.sform +++| END 04109 M01S02553.sform +++|ELSE 04110 M01S02554.sform +++| BEGIN # NO PROTECT #
Line S02555 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform5 |
Seq # *Modification Id* Act ----------------------------+ 04111 M02S02555.sform5 ---| VDTCLL(0,0); # POSITON AND CLEAR LINE #
Line S02556 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform5 |
Seq # *Modification Id* Act ----------------------------+ 04112 M02S02556.sform5 ---| VDTSAM(ATTMASK[0]); # SET ATTRIBUTES # 04113 M01S00002.sform5 +++| VDTCLL(0,0); # POSITION AND CLEAR LINE # 04114 M01S02557.sform +++| END 04115 M01S02558.sform +++| 04116 M01S02559.sform +++|TERMESWRIT[0] = FALSE; # CLEAR MESSAGE WRITTEN FLAG # 04117 M01S02560.sform +++| 04118 M01S02561.sform +++|END # MCLEAN # 04119 M01S02562.sform +++|CONTROL EJECT; 04120 M01S02563.sform +++| 04121 M01S02564.sform +++|PROC MMATCH(MATCHIND,FIELD); 04122 M01S02565.sform +++| 04123 M01S02566.sform +++|# TITLE MMATCH - MOVE MATCH VALUE INTO VARIABLE FIELD . # 04124 M01S02567.sform +++| 04125 M01S02568.sform +++|BEGIN # MMATCH # 04126 M01S02569.sform +++| 04127 M01S02570.sform +++|# 04128 M01S02571.sform +++|** MMATCH - MOVE MATCH VALUE INTO VARIABLE FIELD. 04129 M01S02572.sform +++|* 04130 M01S02573.sform +++|* THIS PROCEDURE MOES THE MATCH VALUE INTO THE VARIABLE FIELD 04131 M01S02574.sform +++|* IN VARDATA. 04132 M01S02575.sform +++|* 04133 M01S02576.sform +++|* PROC MMATCH(MATCHIND,FIELD) 04134 M01S02577.sform +++|* 04135 M01S02578.sform +++|* ENTRY MATCHIND = INDEX INTO MATCHLIST FOR MATCH TO MOVE. 04136 M01S02579.sform +++|* FIELD = INDEX OF FIELD TO RECEIVE MATCH VALUE. 04137 M01S02580.sform +++|* 04138 M01S02581.sform +++|* EXIT FLDENTERED, FLDVALID AND FLDREWRITE FLAGS SET FOR 04139 M01S02582.sform +++|* VARIABLE, AS WELL AS TERREWFLDS, MATCH VALUE MOVED. 04140 M01S02583.sform +++|* 04141 M01S02584.sform +++|* CALLS WRIVCH. 04142 M01S02585.sform +++|* 04143 M01S02586.sform +++|* USES TERREWFLDS. 04144 M01S02587.sform +++|# 04145 M01S02588.sform +++|ITEM MATCHIND I; # INDEX INTO MATCHLIST # 04146 M01S00026.ns2612 +++|ITEM MATCHLEN I; # MATCH ENTRY LENGTH # 04147 M01S02589.sform +++|ITEM FIELD I; # INDEX OF FIELD IN FLDLIST # 04148 M01S02590.sform +++| 04149 M01S02591.sform +++|ITEM CHAR I; # 12-BIT CHARACTER # 04150 M01S02592.sform +++|ITEM I I; # CHARACTER INDEX # 04151 M01S02593.sform +++| 04152 M01S00027.ns2612 +++|MATCHLEN = FLDLENGTH[FIELD]; 04153 M01S00028.ns2612 +++|IF PANVERSION[0] EQ 0 THEN MATCHLEN = 10; 04154 M01S02594.sform +++|FOR I = 0 STEP 1 UNTIL FLDLENGTH[FIELD] - 1 DO 04155 M01S02595.sform +++| BEGIN # MOVE MATCH ENTRY TO FIELD #
Line S02596 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2612 |
Seq # *Modification Id* Act ----------------------------+ 04156 M02S02596.ns2612 ---| IF I LS 10 THEN 04157 M01S00029.ns2612 +++| IF I LS MATCHLEN THEN 04158 M01S02597.sform +++| BEGIN # IF NO BLANK FILL NEEDED # 04159 M01S02598.sform +++| CHAR = C<I*2,2>MATCH[MATCHIND]; 04160 M01S02599.sform +++| END 04161 M01S02600.sform +++| ELSE 04162 M01S02601.sform +++| BEGIN # MORE THAN TEN CHARACTERS # 04163 M01S02602.sform +++| CHAR = BLANK; 04164 M01S02603.sform +++| END 04165 M01S02604.sform +++| WRIVCH(FIELD,I,CHAR); # WRITE CHARACTER INTO VARDATA # 04166 M01S02605.sform +++| END 04167 M01S02606.sform +++| 04168 M01S02607.sform +++|TERREWFLDS[0] = TRUE; # SET REWRITE, ENTERED AND VALID # 04169 M01S02608.sform +++|FLDVALID[FIELD] = TRUE; 04170 M01S02609.sform +++|FLDENTERED[FIELD] = TRUE; 04171 M01S02610.sform +++|FLDREWRITE[FIELD] = TRUE; 04172 M01S02611.sform +++| 04173 M01S02612.sform +++|END # MMATCH # 04174 M01S00117.ns2605 +++|CONTROL EJECT; 04175 M01S00118.ns2605 +++| 04176 M01S00119.ns2605 +++|PROC MOVEFLD(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,IOSTAT); 04177 M01S00120.ns2605 +++| BEGIN 04178 M01S00121.ns2605 +++|# 04179 M01S00122.ns2605 +++|** MOVEFLD - MOVE FIELD. 04180 M01S00123.ns2605 +++|* 04181 M01S00124.ns2605 +++|* MOVEFLD TRANSFERS CHARACTERS TO/FROM A SPECIFIED PANEL FIELD 04182 M01S00125.ns2605 +++|* FROM/TO A SPECIFIED STRING. 04183 M01S00126.ns2605 +++|* 04184 M01S00127.ns2605 +++|* PROC MOVEFLD(VNAME,VLEN,VOS,STRG,SLEN,SOS,CSET,CLEN,COS,IOSTAT) 04185 M01S00128.ns2605 +++|* 04186 M01S00129.ns2605 +++|* ENTRY VNAME = VARIABLE NAME OF FIELD. 04187 M01S00130.ns2605 +++|* VLEN = LENGTH OF VARNAME PARAMETER. 04188 M01S00131.ns2605 +++|* VOS = OFFSET OF VARNAME PARAMETER. 04189 M01S00132.ns2605 +++|* STRG = VARIABLE FIELD STRING. 04190 M01S00133.ns2605 +++|* SLEN = LENGTH OF STRING PARAMETER. 04191 M01S00134.ns2605 +++|* SOS = OFFSET OF STRING PARAMETER. 04192 M01S00135.ns2605 +++|* CSET = CHARACTER SET OF STRING (SEE SFCSET$). 04193 M01S00136.ns2605 +++|* CLEN = LENGTH OF CSET PARAMETER. 04194 M01S00137.ns2605 +++|* COS = OFFSET OF CSET PARAMETER. 04195 M01S00138.ns2605 +++|* IOSTAT = 0, CALL WAS SFGETF. 04196 M01S00139.ns2605 +++|* = 1, CALL WAS SFSETF. 04197 M01S00140.ns2605 +++|* 04198 M01S00141.ns2605 +++|* EXIT STRING MOVED, AND TRANSLATED IF NECESSARY. 04199 M01S00142.ns2605 +++|* IOSTAT GQ 0, NUMBER OF 6 BIT CHARACTERS MOVED. 04200 M01S00143.ns2605 +++|* LS 0, VARIABLE NOT FOUND IN ACTIVE PANELS. 04201 M01S00144.ns2605 +++|# 04202 M01S00145.ns2605 +++| 04203 M01S00146.ns2605 +++| ITEM VNAME C(11); # VARIABLE NAME # 04204 M01S00147.ns2605 +++| ITEM VLEN I; # LENGTH OF VARNAME PARAMETER # 04205 M01S00148.ns2605 +++| ITEM VOS I; # OFFSET INTO VARNAME PARAMETER # 04206 M01S00149.ns2605 +++| ITEM STRG C(11); # INSTRING PARAMETER # 04207 M01S00150.ns2605 +++| ITEM SLEN I; # LENGTH OF INSTRING # 04208 M01S00151.ns2605 +++| ITEM SOS I; # OFFSET INTO INSTRING # 04209 M01S00152.ns2605 +++| ITEM CSET C(11); # CHARACTER SET # 04210 M01S00153.ns2605 +++| ITEM CLEN I; # LENGTH OF CHARACTER SET # 04211 M01S00154.ns2605 +++| ITEM COS I; # OFFSET INTO CHARACTER SET # 04212 M01S00155.ns2605 +++| ITEM IOSTAT I; # MOVE DIRECTION, STATUS RETURN # 04213 M01S00156.ns2605 +++| 04214 M01S00157.ns2605 +++| ITEM ASCFLAG B; # CURRENT DEFAULT CHARACTER SET # 04215 M01S00158.ns2605 +++| ITEM AS8FLAG B; # FLAGS # 04216 M01S00159.ns2605 +++| ITEM CHARIND I; # VARDATA WORD CHARACTER INDEX # 04217 M01S00160.ns2605 +++| ITEM CHARNUM I; # START OF FIELD IN VARDATA # 04218 M01S00161.ns2605 +++| ITEM FLDIND I; # FIELD ORDINAL # 04219 M01S00162.ns2605 +++| ITEM FLDLEN I; # FIELD LENGTH # 04220 M01S00163.ns2605 +++| ITEM FROMCHAROS I; # SOURCE STRING OFFSET # 04221 M01S00164.ns2605 +++| ITEM I I; # LOOP COUNTER # 04222 M01S00165.ns2605 +++| ITEM TOCHAROS I; # DESTINATION STRING OFFSET # 04223 M01S00166.ns2605 +++| ITEM USEROW B = FALSE; # DON-T USE CURSORROW # 04224 M01S00167.ns2605 +++| ITEM VAR C(7); # VARIABLE NAME LEFT JUSTIFIED # 04225 M01S00168.ns2605 +++| ITEM WORDIND I; # WORD INDEX INTO VARDATA # 04226 M01S00169.ns2605 +++| 04227 M01S00170.ns2605 +++| 04228 M01S00171.ns2605 +++| IF VLEN LS 1 THEN VLEN = 7; 04229 M01S00172.ns2605 +++| VAR = C<VOS,VLEN>VNAME; 04230 M01S00173.ns2605 +++| GFIELD(VAR,USEROW,FLDIND); # GET ASSOCIATED FIELD # 04231 M01S00174.ns2605 +++| IF FLDIND LS 0 THEN 04232 M01S00175.ns2605 +++| BEGIN # IF FIELD NOT FOUND # 04233 M01S00176.ns2605 +++| IOSTAT = -1; 04234 M01S00177.ns2605 +++| RETURN; 04235 M01S00178.ns2605 +++| END 04236 M01S00179.ns2605 +++| ASCFLAG = TERASCFLAG[0]; # SAVE CURRENT CHARACTER SET # 04237 M01S00180.ns2605 +++| AS8FLAG = TERAS8FLAG[0]; 04238 M01S00181.ns2605 +++| IF C<COS,1>CSET NQ " " THEN SFCSET$(CSET,CLEN,COS); 04239 M01S00182.ns2605 +++| CHARNUM = FLDVDTCORD[FLDIND]; # START OF FIELD IN VARDATA # 04240 M01S00183.ns2605 +++| WORDIND = CHARNUM/5; # WORD INDEX INTO VARDATA # 04241 M01S00184.ns2605 +++| CHARIND = CHARNUM - (5 * WORDIND); # VARDATA WORD CHARACTER INDEX # 04242 M01S00185.ns2605 +++| FLDLEN = FLDLENGTH[FLDIND]; 04243 M01S00186.ns2605 +++| IF IOSTAT EQ 0 THEN 04244 M01S00187.ns2605 +++| BEGIN # IF MOVING VARDATA TO INSTRING # 04245 M01S00188.ns2605 +++| P<FROMSTRING> = LOC(VDATAU[WORDIND]); 04246 M01S00189.ns2605 +++| P<TOSTRING> = LOC(STRG); 04247 M01S00190.ns2605 +++| TOCHAROS = SOS; # CHARACTER OFFSET / TO STRING # 04248 M01S00191.ns2605 +++| FROMCHAROS = CHARIND*2; # CHARACTER OFFSET / VARDATA # 04249 M01S00192.ns2605 +++| IF TERAS8FLAG[0] THEN 04250 M01S00193.ns2605 +++| BEGIN # IF NO TRANSLATION REQUIRED # 04251 M01S00194.ns2605 +++| IF SLEN LQ 0 THEN SLEN = FLDLEN * 2; 04252 M01S00195.ns2605 +++| MVA8A8(FROMCHAROS,TOCHAROS,FLDLEN*2,SLEN,TRUE); 04253 M01S00196.ns2605 +++| END 04254 M01S00197.ns2605 +++| ELSE 04255 M01S00198.ns2605 +++| BEGIN 04256 M01S00199.ns2605 +++| IF TERASCFLAG[0] THEN 04257 M01S00200.ns2605 +++| BEGIN # IF 6/12 ASCII # 04258 M01S00201.ns2605 +++| MVA8AS(TOCHAROS,FROMCHAROS,SLEN,FLDLEN,TRUE); 04259 M01S00202.ns2605 +++| END 04260 M01S00203.ns2605 +++| ELSE 04261 M01S00204.ns2605 +++| BEGIN # IF SIX BIT DISPLAY CODE # 04262 M01S00205.ns2605 +++| MVA8DC(TOCHAROS,FROMCHAROS,SLEN,FLDLEN,TRUE); 04263 M01S00206.ns2605 +++| END 04264 M01S00207.ns2605 +++| END 04265 M01S00208.ns2605 +++| END 04266 M01S00209.ns2605 +++| ELSE 04267 M01S00210.ns2605 +++| BEGIN # IF MOVING OUTSTRING TO VARDATA # 04268 M01S00211.ns2605 +++| P<FROMSTRING> = LOC(STRG); 04269 M01S00212.ns2605 +++| FROMCHAROS = SOS; # CHARACTER OFFSET / FROM STRING # 04270 M01S00213.ns2605 +++| P<TOSTRING> = LOC(VDATAU[WORDIND]); 04271 M01S00214.ns2605 +++| TOCHAROS = CHARIND * 2; # CHARACTER OFFSET / VARDATA # 04272 M01S00215.ns2605 +++| IF TERAS8FLAG[0] THEN 04273 M01S00216.ns2605 +++| BEGIN # IF NO TRANSLATION REQUIRED # 04274 M01S00217.ns2605 +++| IF SLEN LQ 0 THEN SLEN = FLDLEN * 2; 04275 M01S00218.ns2605 +++| MVA8A8(FROMCHAROS,TOCHAROS,SLEN,FLDLEN*2,TRUE); 04276 M01S00219.ns2605 +++| END 04277 M01S00220.ns2605 +++| ELSE 04278 M01S00221.ns2605 +++| BEGIN 04279 M01S00222.ns2605 +++| IF TERASCFLAG[0] THEN 04280 M01S00223.ns2605 +++| BEGIN # IF 6/12 ASCII # 04281 M01S00224.ns2605 +++| MVASA8(FROMCHAROS,TOCHAROS,SLEN,FLDLEN,TRUE); 04282 M01S00225.ns2605 +++| END 04283 M01S00226.ns2605 +++| ELSE 04284 M01S00227.ns2605 +++| BEGIN # IF SIX BIT DISPLAY CODE # 04285 M01S00228.ns2605 +++| MVDCA8(FROMCHAROS,TOCHAROS,SLEN,FLDLEN,TRUE); 04286 M01S00229.ns2605 +++| END 04287 M01S00230.ns2605 +++| END 04288 M01S00231.ns2605 +++| FLDREWRITE[FLDIND] = TRUE; 04289 M01S00232.ns2605 +++| TERREWFLDS[0] = FALSE; # REWRITE UPDATED FIELD # 04290 M01S00233.ns2605 +++| REWFLD; 04291 M01S00234.ns2605 +++| TERREWFLDS[0] = TRUE; # RESET FLAG TO DEFAULT # 04292 M01S00235.ns2605 +++| END 04293 M01S00236.ns2605 +++| TERASCFLAG[0] = ASCFLAG; # RESTORE INITIAL VALUES # 04294 M01S00237.ns2605 +++| TERAS8FLAG[0] = AS8FLAG; 04295 M01S00238.ns2605 +++| IOSTAT = SLEN; 04296 M01S00239.ns2605 +++| RETURN; 04297 M01S00240.ns2605 +++| 04298 M01S00241.ns2605 +++|END # MOVEFLD# 04299 M01S02613.sform +++|CONTROL EJECT; 04300 M01S02614.sform +++| 04301 M01S02615.sform +++|PROC MOVEST(STRINGADDR,STRINGOS,SLENGTH); 04302 M01S02616.sform +++| 04303 M01S02617.sform +++|# TITLE MOVEST - MOVE STRING. # 04304 M01S02618.sform +++| 04305 M01S02619.sform +++|BEGIN # MOVEST # 04306 M01S02620.sform +++| 04307 M01S02621.sform +++|# 04308 M01S02622.sform +++|** MOVEST - MOVE STRING. 04309 M01S02623.sform +++|* 04310 M01S02624.sform +++|* THIS PROCEDURE POSITIONS THE BASED ARRAYS TOSTRING 04311 M01S02625.sform +++|* AND FROMSTRING AND THEN CALLS THE PROPER PROCEDURE 04312 M01S02626.sform +++|* TO DO THE ACTUAL TRANSLATION AND TO MOVE THE STRING 04313 M01S02627.sform +++|* FROM OUTSTRING TO VARDATA (IF A WRITE OPERATION IS 04314 M01S02628.sform +++|* STARTING) OR FROM VARDATA TO INSTRING (IF A READ 04315 M01S02629.sform +++|* OPERATION IS FINISHED). 04316 M01S02630.sform +++|* 04317 M01S02631.sform +++|* PROC MOVEST(STRINGADDR,STRINGOS,SLENGTH) 04318 M01S02632.sform +++|* 04319 M01S02633.sform +++|* ENTRY STRINGADDR = THE FIRST WORD ADDRESS OF INSTRING 04320 M01S02634.sform +++|* OR OUTSTRING (DEPENDING ON WHICH 04321 M01S02635.sform +++|* DIRECTION THE CHARACTER DATA IS 04322 M01S02636.sform +++|* BEING MOVED). 04323 M01S02637.sform +++|* STRINGOS = CHARACTER OFFSET (IN SIX BIT CHAR- 04324 M01S02638.sform +++|* CTERS) INTO EITHER INSTRING OR OUT- 04325 M01S02639.sform +++|* STRING (DEPENDING ON WHICH DIRECTION 04326 M01S02640.sform +++|* THE CHARACTER DATA IS BEING MOVED). 04327 M01S02641.sform +++|* SLENGTH = LENGTH IN SIX BIT CHARACTERS. 04328 M01S02642.sform +++|* TERREADFLG = TRUE, IF MOVING FROM VARDATA TO INSTRING 04329 M01S02643.sform +++|* DURING AN SFSREA CALL, FALSE IF MOVING 04330 M01S02644.sform +++|* FROM OUTSTRING TO VARDATA DURING AN SFS- 04331 M01S02645.sform +++|* WRI CALL. 04332 M01S02646.sform +++|* 04333 M01S02647.sform +++|* EXIT STRING MOVED, AND TRANSLATED IF NECESSARY. 04334 M01S02648.sform +++|* 04335 M01S02649.sform +++|* CALLS MVASA8, MVA8AS, MVA8A8, MVA8DC, MVDCA8. 04336 M01S02650.sform +++|# 04337 M01S02651.sform +++|ITEM STRINGADDR I; # ADDRESS OF IN/OUTSTRING # 04338 M01S02652.sform +++|ITEM STRINGOS I; # CHARACTER OFFSET INTO STRING # 04339 M01S02653.sform +++|ITEM SLENGTH I; # LENGTH IN SIX BIT CHARACTERS # 04340 M01S02654.sform +++| 04341 M01S02655.sform +++|ITEM FROMCHAROS I; # CHARACTER OFFSET / FROM STRING # 04342 M01S02656.sform +++|ITEM TOCHAROS I; # CHARACTER OFFSET / TO STRING # 04343 M01S02657.sform +++| 04344 M01S02658.sform +++|IF NOT TERREADFLG[0] THEN 04345 M01S02659.sform +++| BEGIN # IF MOVING OUTSTRING TO VARDATA # 04346 M01S02660.sform +++| P<FROMSTRING> = STRINGADDR; # POSITION FROM AND TO STRING # 04347 M01S02661.sform +++| P<TOSTRING> = LOC(VDATAU[0]); 04348 M01S02662.sform +++| FROMCHAROS = STRINGOS; # CHARACTER OFFSET / FROM STRING # 04349 M01S00242.ns2605 +++| TOCHAROS = 0; # NO CHARACTER OFFSET / VARDATA # 04350 M01S02663.sform +++| IF TERAS8FLAG[0] THEN 04351 M01S02664.sform +++| BEGIN # IF NO TRANSLATION REQUIRED #
Line S02665 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04352 M02S02665.ns2605 ---| TOCHAROS = 0; # NO CHARACTER OFFSET / VARDATA #
Line S02666 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04353 M02S02666.ns2605 ---| MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH); # MOVE OUTSTRING TO VARDATA # 04354 M01S00243.ns2605 +++| IF SLENGTH LQ 0 THEN SLENGTH = PANNUMBYTE[0] * 2; 04355 M01S00244.ns2605 +++| MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0]*2,FALSE); 04356 M01S02667.sform +++| END 04357 M01S02668.sform +++| ELSE 04358 M01S02669.sform +++| BEGIN 04359 M01S02670.sform +++| IF TERASCFLAG[0] THEN 04360 M01S02671.sform +++| BEGIN # IF SIX TWELVE ASCII #
Line S02672 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04361 M02S02672.ns2605 ---| MVASA8(FROMCHAROS,SLENGTH); # MOVE OUTSTRING TO VARDATA # 04362 M01S00245.ns2605 +++| MVASA8(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE); 04363 M01S02673.sform +++| END 04364 M01S02674.sform +++| ELSE 04365 M01S02675.sform +++| BEGIN # IF SIX BIT DISPLAY CODE #
Line S02676 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04366 M02S02676.ns2605 ---| MVDCA8(FROMCHAROS,SLENGTH); # MOVE OUTSTRING TO VARDATA # 04367 M01S00246.ns2605 +++| MVDCA8(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE); 04368 M01S02677.sform +++| END 04369 M01S02678.sform +++| END 04370 M01S02679.sform +++| END 04371 M01S02680.sform +++|ELSE 04372 M01S02681.sform +++| BEGIN # IF MOVING VARDATA TO INSTRING # 04373 M01S02682.sform +++| P<FROMSTRING> = LOC(VDATAU[0]); # POSITION FROM AND TO STRING # 04374 M01S02683.sform +++| P<TOSTRING> = STRINGADDR; 04375 M01S02684.sform +++| TOCHAROS = STRINGOS; # CHARACTER OFFSET / TO STRING # 04376 M01S00247.ns2605 +++| FROMCHAROS = 0; # NO CHARACTER OFFSET / VARDATA # 04377 M01S02685.sform +++| IF TERAS8FLAG[0] THEN 04378 M01S02686.sform +++| BEGIN # IF NO TRANSLATION REQUIRED #
Line S02687 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04379 M02S02687.ns2605 ---| FROMCHAROS = 0; # NO CHARACTER OFFSET / VARDATA #
Line S02688 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04380 M02S02688.ns2605 ---| MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH); # MOVE VARDATA TO INSTRING # 04381 M01S00248.ns2605 +++| IF SLENGTH LQ 0 THEN SLENGTH = PANNUMBYTE[0] * 2; 04382 M01S00249.ns2605 +++| MVA8A8(FROMCHAROS,TOCHAROS,PANNUMBYTE[0]*2,SLENGTH,FALSE); 04383 M01S02689.sform +++| END 04384 M01S02690.sform +++| ELSE 04385 M01S02691.sform +++| BEGIN 04386 M01S02692.sform +++| IF TERASCFLAG[0] THEN 04387 M01S02693.sform +++| BEGIN # IF SIX TWELVE ASCII #
Line S02694 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04388 M02S02694.ns2605 ---| MVA8AS(TOCHAROS,SLENGTH); # MOVE VARDATA TO INSTRING #
Line S00250 Modification History | |
---|---|
M01 (Added by) | ns2605 |
M02 (Updated by) | ns2605a |
Seq # *Modification Id* Act ----------------------------+ 04389 M02S00250.ns2605a ---| MVA8AS(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE); 04390 M01S00001.ns2605a +++| MVA8AS(TOCHAROS,FROMCHAROS,SLENGTH,PANNUMBYTE[0],FALSE); 04391 M01S02695.sform +++| END 04392 M01S02696.sform +++| ELSE 04393 M01S02697.sform +++| BEGIN # IF SIX BIT DISPLAY CODE #
Line S02698 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04394 M02S02698.ns2605 ---| MVA8DC(TOCHAROS,SLENGTH); # MOVE VARDATA TO INSTRING #
Line S00251 Modification History | |
---|---|
M01 (Added by) | ns2605 |
M02 (Updated by) | ns2605a |
Seq # *Modification Id* Act ----------------------------+ 04395 M02S00251.ns2605a ---| MVA8DC(FROMCHAROS,TOCHAROS,SLENGTH,PANNUMBYTE[0],FALSE); 04396 M01S00002.ns2605a +++| MVA8DC(TOCHAROS,FROMCHAROS,SLENGTH,PANNUMBYTE[0],FALSE); 04397 M01S02699.sform +++| END 04398 M01S02700.sform +++| END 04399 M01S02701.sform +++| END 04400 M01S02702.sform +++| 04401 M01S02703.sform +++|END # MOVEST # 04402 M01S00252.ns2605 +++|CONTROL EJECT; 04403 M01S00253.ns2605 +++|
Line S02704 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04404 M02S02704.ns2605 ---|CONTROL EJECT;
Line S02705 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04405 M02S02705.ns2605 ---|
Line S02706 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04406 M02S02706.ns2605 ---|PROC MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH); 04407 M01S00254.ns2605 +++|PROC MVA8A8(FROMCHAROS,TOCHAROS,FROMLENGTH,TOLENGTH,FILL); 04408 M01S02707.sform +++| 04409 M01S02708.sform +++|# TITLE MVA8A8 - MOVE ASCII8 STRING. # 04410 M01S02709.sform +++| 04411 M01S02710.sform +++|BEGIN # MVA8A8 # 04412 M01S02711.sform +++| 04413 M01S02712.sform +++|# 04414 M01S02713.sform +++|** MVA8A8 - MOVE ASCII8 STRING. 04415 M01S02714.sform +++|* 04416 M01S02715.sform +++|* THIS PROCEDURE MOVES THE ASCII8 CHARACTER DATA FROM OUTSTRING 04417 M01S02716.sform +++|* TO VARDATA BEFORE A WRITE, OR FROM VARDATA TO INSTRING AFTER
Line S02717 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | sform8 |
Seq # *Modification Id* Act ----------------------------+ 04418 M02S02717.sform8 ---|* A READ, USING THE BASED ARRAYS FROMSTRING AND TO STRING.
Line S00001 Modification History | |
---|---|
M01 (Added by) | sform8 |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04419 M02S00001.ns2605 ---|* A READ, USING THE BASED ARRAYS FROMSTRING AND TOSTRING. 04420 M01S00255.ns2605 +++|* A READ, USING THE BASED ARRAYS FROMSTRING AND TOSTRING. IF THE 04421 M01S00256.ns2605 +++|* DESTINATION FIELD IS SHORTER THAN THE SOURCE FIELD, THE STRING 04422 M01S00257.ns2605 +++|* WILL BE TRUNCATED. IF THE SOURCE FIELD IS SHORTER AND *FILL* IS 04423 M01S00258.ns2605 +++|* *TRUE*, THE DESTINATION FIELD WILL BE BLANK FILLED. 04424 M01S02718.sform +++|*
Line S02719 Modification History | |
---|---|
M01 (Added by) | sform |
M02 (Updated by) | ns2605 |
Seq # *Modification Id* Act ----------------------------+ 04425 M02S02719.ns2605 ---|* PROC MVA8A8(FROMCHAROS,TOCHAROS,SLENGTH)
Proceed to Part 3
cdc/nos2.source/opl.opl871/deck/sform.002.txt ยท Last modified: by 127.0.0.1